Установка системы intraHouse



  • Подскажите, пожалуйста, как можно корректно перенести папку сервера из /opt/intrahouse-c/ в /var/intrahouse-c/ ?

    Интересует перенос именно самого сервера, а не папки проектов.

    У меня раздел /opt живет на eMMC, а раздел /var живет на HDD.

    А в /opt/intrahouse-c пишутся логи, что хотелось бы делать на HDD.

    Достаточно ли переписать папку и поправить пути запуска/останова в /etc/rc.* ?

    Или есть какие-то нюансы?



  • @filippovsky:

    Подскажите, пожалуйста, как можно корректно перенести папку сервера из /opt/intrahouse-c/ в /var/intrahouse-c/ ?

    Интересует перенос именно самого сервера, а не папки проектов.

    У меня раздел /opt живет на eMMC, а раздел /var живет на HDD.

    А в /opt/intrahouse-c пишутся логи, что хотелось бы делать на HDD.

    Достаточно ли переписать папку и поправить пути запуска/останова в /etc/rc.* ?

    Или есть какие-то нюансы?

    Да, Вы можете перенести всю папку сервера в другой директорий

    Есть и другой вариант - изменить только рабочую папку (Working directory), в которую переписать файл config.json.

    Лог будет писаться в рабочую папку, а система может оставаться в opt.

    Удалите в /opt/intrahouse-c папку log. Если все настроено верно, после перезагрузки сервера она там появится не должна

    Настройка путей в скриптах системы инициализации:

    Для systemd в файле /etc/systemd/system/intrahouse-c.service:

    [Service]
      WorkingDirectory=/opt/intrahouse-c    // Это рабочий директорий 
      ExecStart=/opt/intrahouse-c/node/bin/node /opt/intrahouse-c/backend/app.js prod  // Это путь для запуска службы
    
    
    

    Для sysv в файле /etc/init.d/intrahouse-c

    dir="/opt/intrahouse-c  // Это рабочий директорий 
    cmd="/opt/intrahouse-c/node/bin/node /opt/intrahouse-c/backend/app.js prod"
    
    
    


  • пошел по пути полного переноса, т.к. в корне папки /opt/intrahouse-c тоже есть syslog, authlog, tokens

    после переноса не цепляется к базе:

    12.04 23:47:42.080 WARN: IH System has started

    12.04 23:47:42.136 WARN: IH Create devices start

    12.04 23:47:42.166 WARN: IH Created devices:7

    12.04 23:47:42.226 INFO: DBAdapter dbagent/var/intrahouse-c/backend/lib/dbadapter/mysqlagent.js has started

    12.04 23:47:51.771 INFO: DBAGENT mysqlagent error 220: Database status error: Error: getaddrinfo EAI_AGAIN localhost:3306

    и еще глюк после переноса - если выбрать пункт в PM "Restart Intrahouse", сервер останавливается, но не запускается

    PS: нашел еще такой файл /etc/init/intrahouse-c.conf

      start on filesystem and started networking
      stop on shutdown
      respawn
      chdir /opt/intrahouse-c
      env NODE_ENV=production
    
      exec /opt/intrahouse-c/node/bin/node /opt/intrahouse-c/backend/app.js prod
    
    
    

    Попробую в нем тоже поправить пути

    PPS: вылечилось. Спасибо. И графики заработали.

    Наверное, имеет смысл добавить инструкцию по переносу в другую папку в документацию?



  • @filippovsky:

    пошел по пути полного переноса, т.к. в корне папки /opt/intrahouse-c тоже есть syslog, authlog, tokens

    Это все остается в рабочей папке. Если отделить рабочую папку, в папку приложения ничего не пишется

    @filippovsky:

    PS: нашел еще такой файл /etc/init/intrahouse-c.conf

    >   start on filesystem and started networking
    >   stop on shutdown
    >   respawn
    >   chdir /opt/intrahouse-c
    >   env NODE_ENV=production
    > 
    >   exec /opt/intrahouse-c/node/bin/node /opt/intrahouse-c/backend/app.js prod
    > 
    > 
    

    Попробую в нем тоже поправить пути

    PPS: вылечилось. Спасибо. И графики заработали.

    Запуск сервиса зависит от системы инициализации

    Если вам помогло редактирование /etc/init/intrahouse-c.conf - значит у вас upstart 🙂

    @filippovsky:

    Наверное, имеет смысл добавить инструкцию по переносу в другую папку в документацию?

    Вы правы, добавим



  • Есть проблема. Не знаю ,связана ли она с переносом. Похоже, что была и до переноса, судя по логам.

    При рестарте операционной системы по команде reboot - сервер после старта операционки запускается,и работает, но dbAgent не может запуститься, при этом в логах идут сообщения, что порт 8088 уже занят.

    Если после этого перезапустить intraHouse командой из PM - то dbAdapter запускается, ошибки в логах исчезают.

    В момент, когда идут ошибки в логах, netstat показывает ,что порт 8088 занят процессом node.

    Такое ощущение, что стартуют два процесса сервера одновременно.По логам характерно, что идут записи 00:32, потом 00:33, потом опять 00:32. Т.е. нечто из двух мест пишет в один и тот же лог.

    13.04 00:32:53.637 INFO: INIT Project folder: /var/lib/intrahouse-c/projects/terehovo

    13.04 00:32:54.066 INFO: Run /var/lib/intrahouse-c/plugins/ihpro/ihpro_linux_arm

    **13.04 00:32:55.514 INFO: ADDON Received 6 files.

    13.04 00:32:55.696 WARN: IH System has started**

    13.04 00:32:59.561 INFO: INIT Project folder: /var/lib/intrahouse-c/projects/terehovo

    13.04 00:32:59.807 INFO: Run /var/lib/intrahouse-c/plugins/ihpro/ihpro_linux_arm

    **13.04 00:33:01.132 INFO: ADDON Received 6 files.

    13.04 00:33:01.296 WARN: IH System has started**

    13.04 00:32:55.750 WARN: IH Create devices start

    13.04 00:32:55.773 WARN: IH Created devices:7

    13.04 00:32:55.832 INFO: DBAdapter dbagent/var/intrahouse-c/backend/lib/dbadapter/mysqlagent.js has started

    13.04 00:33:05.823 INFO: DBAGENT mysqlagent error 220: Database status error: Error: getaddrinfo EAI_AGAIN localhost:3306

    13.04 00:33:11.486 INFO: INIT Project folder: /var/lib/intrahouse-c/projects/terehovo

    13.04 00:33:11.732 INFO: Run /var/lib/intrahouse-c/plugins/ihpro/ihpro_linux_arm

    13.04 00:33:13.049 INFO: ADDON Received 6 files.

    **13.04 00:33:13.209 ERR: INIT HTTP server port 8088 error! Address in use.

    13.04 00:33:13.219 ERR: FATAL ERROR. { message: 'HTTP server port 8088 error! Address in use.' }**

    13.04 00:33:13.724 IH IntraHouse has stopped.

    13.04 00:33:14.478 INFO: INIT Project folder: /var/lib/intrahouse-c/projects/terehovo

    13.04 00:33:14.677 INFO: Run /var/lib/intrahouse-c/plugins/ihpro/ihpro_linux_arm

    13.04 00:33:15.833 INFO: ADDON Received 6 files.

    13.04 00:33:15.992 ERR: INIT HTTP server port 8088 error! Address in use.

    13.04 00:33:16.002 ERR: FATAL ERROR. { message: 'HTTP server port 8088 error! Address in use.' }

    13.04 00:33:16.507 IH IntraHouse has stopped.

    13.04 00:33:17.287 INFO: INIT Project folder: /var/lib/intrahouse-c/projects/terehovo

    13.04 00:33:17.496 INFO: Run /var/lib/intrahouse-c/plugins/ihpro/ihpro_linux_arm

    13.04 00:33:18.603 INFO: ADDON Received 6 files.

    13.04 00:33:18.761 ERR: INIT HTTP server port 8088 error! Address in use.

    13.04 00:33:18.771 ERR: FATAL ERROR. { message: 'HTTP server port 8088 error! Address in use.' }

    13.04 00:33:19.276 IH IntraHouse has stopped.

    [ .. дальше этот кусок непрерывно повторяется, до перезапуска из PM .. ]

    13.04 00:35:53.211 INFO: INIT Project folder: /var/lib/intrahouse-c/projects/terehovo

    13.04 00:35:53.435 INFO: Run /var/lib/intrahouse-c/plugins/ihpro/ihpro_linux_arm

    13.04 00:35:54.669 INFO: ADDON Received 6 files.

    13.04 00:35:54.828 ERR: INIT HTTP server port 8088 error! Address in use.

    13.04 00:35:54.839 ERR: FATAL ERROR. { message: 'HTTP server port 8088 error! Address in use.' }

    13.04 00:35:55.344 IH IntraHouse has stopped.

    [ … момент перезапуска из PМ .. ]

    13.04 00:35:56.122 INFO: INIT Project folder: /var/lib/intrahouse-c/projects/terehovo

    13.04 00:35:56.370 INFO: Run /var/lib/intrahouse-c/plugins/ihpro/ihpro_linux_arm

    13.04 00:35:56.963 IH IntraHouse has stopped.

    13.04 00:35:57.683 INFO: ADDON Received 6 files.

    13.04 00:35:57.843 WARN: IH System has started

    13.04 00:35:57.872 WARN: IH Create devices start

    13.04 00:35:57.894 WARN: IH Created devices:7

    13.04 00:35:57.947 INFO: DBAdapter dbagent/var/intrahouse-c/backend/lib/dbadapter/mysqlagent.js has started



  • @intrapro:

    Запуск сервиса зависит от системы инициализации

    Если вам помогло редактирование /etc/init/intrahouse-c.conf - значит у вас upstart 🙂

    Большое спасибо за помощь!

    Убрал /etc/init/intrahouse-c.conf - и все заработало (кроме рестарта из PM).

    Буду разбираться с настройками ОС.

    Спасибо!!

    PS: В моем случае пришлось наоборот оставить /etc/init/intrahouse-c.conf и убрать /etc/rc*.d/intrahouse

    Т.е. оставить только upstart. DbAgent и рестарт из PM после этого работают корректно.

    Может, кому пригодится.

    Возможно, есть смысл в инсталляторе предусмотреть, что на старой Ubuntu нужно прописывать только upstart без init.d?

    Понимаю, что лучше обновить ОС. 🙂



  • @filippovsky:

    Большое спасибо за помощь!

    Убрал /etc/init/intrahouse-c.conf - и все заработало (кроме рестарта из PM).

    Буду разбираться с настройками ОС.

    Спасибо!!

    PS: В моем случае пришлось наоборот оставить /etc/init/intrahouse-c.conf и убрать /etc/rc*.d/intrahouse

    Т.е. оставить только upstart. DbAgent и рестарт из PM после этого работают корректно.

    Может, кому пригодится.

    Возможно, есть смысл в инсталляторе предусмотреть, что на старой Ubuntu нужно прописывать только upstart без init.d?

    Понимаю, что лучше обновить ОС. 🙂

    Добрый день!

    Инсталлятор для Debian/Ubuntu прописывает файлы для стандартной системы инициализации исходя из версии ОС:

    upstart для ubuntu 12, 14 - файл /etc/init/intrahouse-c.conf

    systemd для ubuntu 16 и выше, debian 8 и выше - файл /etc/systemd/system/intrahouse-c.service

    В /etc/rc*.d ничего не прописывается

    Всегда прописывается /etc/init.d/intrahouse-c, имея в виду что стандартная система инициализации может быть отключена.

    Обычно все нормально срабатывает и два раза сервис не запускается.

    Какая у Вас ОС?



  • @intrapro:

    Обычно все нормально срабатывает и два раза сервис не запускается.

    Какая у Вас ОС?

    У меня CubieTruck 5 под управлением Linaro (диалект Ubuntu)/

    При входе в ОС пишет

    Welcome to Ubuntu 14.04.6 LTS (GNU/Linux 3.4.39 armv7l)



  • @denis 19:

    Здравствуйте. Использую raspberry pi 3 b, microSD transcend 10 класса с высокой скоростью чтения/записи и возникла проблема. Установил rtc ds3231 согласно вашей инструкции, но иногда время сбивается на 1970 год при отключении от сети. Есть подозрения что либо чтение/запись не отрабатывает корректно из за того, что что-то грузится быстрее. Делал задержку, сначала включался модуль rtc, через 5 секунд уже сама raspberry, но проблема осталась. Подскажите пожалуйста, как победить эту проблему? а то и толку то от модуля rtc нет.

    Не установлены i2c-tools и python-smbus

    НУЖНО СДЕЛАТЬ ВОТ ЧТО

    sudo su

    raspi-config

    ищем и включаем i2c

    reboot

    проверяем i2c

    i2cdetect –y 1

    если высвечивается «command not found» подключаем raspberry pi к интернету и устанавливаем apt-get install python-smbus

    далее делаем apt-get install i2c-tools

    далее редактируем nano /etc/modules и перед строкой i2c-dev добавляем i2c-bcm2708 сохраняемся ctrl+x yes

    далее снова открываем nano /boot/config.txt и смотрим чтобы были прописаны такие строки:

    Enable audio (loads snd _bcm2835)

    dtparam=audio=on

    dtparam=i2cl=on

    dtparam=i2c_arm=on

    сохраняемся ctrl+x yes

    перезагружаемся

    снова открываем терминал и проверяем i2c i2cdetect–y1 и если все сделали правильно, то при подключенном модуле ds3231 должна появится табличка, в которой будет видно что по i2c подключено устройство ( в табличке вас должны порадовать цифры 68 это адрес ds3231 ).

    На этом еще не все

    Открываем терминал

    nano

    В конце файла /boot/config.txt дописать строку: dtoverlay=i2c-rtc,ds3231

    Удалить fake-hwclock: sudo apt-get purge fake-hwclock

    ( можете и отключить )

    Отредактировать файл/etc/rc.local, вставив перед строкой“exit 0” строку: /sbin/hwclock -s

    Отредактировать файл /etc/default/hwclock and set HWCLOCKACCESS to no: HWCLOCKACCESS=no

    Устанавливаем время sudo su

    Date MMDDhhmmYYYY и нажимаем enter

    Записываем время в ds3231

    sudo hwclock–w

    гружаемся и смотрим sudo hwclock –r ( время с ds3231)

    при необходимости устанавливаем свою time zone

    sudo dpkg-reconfigure tzdata



  • Добрый день. Перенёс сервер на Cubietruck. Работает отлично, подключил внешний li-ion аккумулятор. Теперь сервер имеет и твердотельный накопитель (Sata) и бесперебойное питание и все это в электрощите на din рейке. А можно информацию о состоянии аккумулятора вывести на виджете?



  • Правильнее дать возможность выводить любые параметры операционной системы. Подумаем



  • @sergeyygr:

    Добрый день. Перенёс сервер на Cubietruck. Работает отлично, подключил внешний li-ion аккумулятор. Теперь сервер имеет и твердотельный накопитель (Sata) и бесперебойное питание и все это в электрощите на din рейке. А можно информацию о состоянии аккумулятора вывести на виджете?

    А по SNMP это не доступно при обращении к операционной системе?



  • @homa:

    @sergeyygr:

    Добрый день. Перенёс сервер на Cubietruck. Работает отлично, подключил внешний li-ion аккумулятор. Теперь сервер имеет и твердотельный накопитель (Sata) и бесперебойное питание и все это в электрощите на din рейке. А можно информацию о состоянии аккумулятора вывести на виджете?

    А по SNMP это не доступно при обращении к операционной системе?

    Не пробовал, да и не знаю как. Считаю это «танцы с бубном», есть же информация о времени от последней перезагрузки, тип ОС, ip, температура процессора. Почему не вставить строку о состоянии батареи в %?



  • @sergeyygr:

    @homa:

    @sergeyygr:

    Добрый день. Перенёс сервер на Cubietruck. Работает отлично, подключил внешний li-ion аккумулятор. Теперь сервер имеет и твердотельный накопитель (Sata) и бесперебойное питание и все это в электрощите на din рейке. А можно информацию о состоянии аккумулятора вывести на виджете?

    А по SNMP это не доступно при обращении к операционной системе?

    Не пробовал, да и не знаю как. Считаю это «танцы с бубном», есть же информация о времени от последней перезагрузки, тип ОС, ip, температура процессора. Почему не вставить строку о состоянии батареи в %?

    Да, Вы правы, в линуксе для этого нужно читать файлы в папке /sys/class/power_supply….

    Проблема в том что дальше могут быть варианты в зависимости от платы компьютера и ОС

    А на многих компьютерах эта папка пуста

    Можно решить эту задачу добавлением плагина, который будет периодически считывать файлы, которые задаст пользователь

    Вероятно, так и сделаем 🙂



  • Установка на Распберри с образа ih20190416_3.img.
    Малина загружается по ssh доступ есть. По http://х.х.х.х:8088/pm/ соединение не устанавливается (Хром).
    Пара последних строк из ih.log:

    16.04 13:07:32.712 IH IntraHouse has stopped.
    16.04 13:07:38.296 INFO: INIT Project folder: /var/lib/intrahouse-c/projects/project_1555415978
    16.04 13:07:38.478 WARN: IH System has started
    16.04 13:07:38.484 WARN: IH Create devices start
    16.04 13:07:38.542 WARN: IH Created devices:57
    16.04 13:07:38.544 WARN: Reading /var/lib/intrahouse-c/projects/project_1555415978/operative/devcurrent.json. ENOENT: no such file or directory, open '/var/lib/intrahouse-c/projects/project_1555415978/operative/devcurrent.json'

    Не подскажете, что сделать, куда посмотреть ?



  • @Victor Добрый день!
    Пока в логе все нормально, данный ENOENT не ошибка, несуществующие файлы и папки создаются системой при необходимости автоматически.
    Должно быть сообщение
    09.12 13:16:22.713 WARN: IH HTTP server has started on 8088

    Но похоже это не тот лог, он от 16 апреля. Удалите этот файл и перезапустите сервер:

    sudo service intrahouse-c restart
    

    Можно проверить из консоли, что сервер запущен:

    sudo service intrahouse-c status
    


  • Добрый день.

    Но похоже это не тот лог, он от 16 апреля. Удалите этот файл и перезапустите сервер:

    sudo service intrahouse-c restart
    

    Удалил этот лог. Новый после рестарта не появился.

    Можно проверить из консоли, что сервер запущен:

    sudo service intrahouse-c status
    

    pi@ihserver:~ $ sudo service intrahouse-c status
    ● intrahouse-c.service - intrahouse-c
    Loaded: loaded (/etc/systemd/system/intrahouse-c.service; enabled; vendor preset: enabled)
    Active: activating (auto-restart) (Result: signal) since Mon 2019-12-09 20:36:03 EET; 2s ago
    Process: 737 ExecStart=/opt/intrahouse-c/node/bin/node /opt/intrahouse-c/backend/app.js prod (code=killed, signal=SEGV)
    Main PID: 737 (code=killed, signal=SEGV)

    Dec 09 20:36:03 ihserver systemd[1]: intrahouse-c.service: Failed with result 'signal'.
    pi@ihserver:~ $

    Это после рестарта в ручную.



  • SEGV - ошибка сегментации памяти 😞
    Попробуйте остановить сервис и запустить сервер IH вручную

    sudo service intrahouse-c stop
    /opt/intrahouse-c/node/bin/node /opt/intrahouse-c/backend/app.js prod
    


  • Приобрел себе FriendlyARM NanoPi NEO2 Black lts 1GB ARM.
    Прошил в еммс Ubuntu 16.04.6 LTS 4.14.111
    Не могу поставить интрахаус, пишет при установке такое:

    Deploy:
    /opt/intrahouse-c/install.sh: line 146: /opt/intrahouse-c/node/bin/node: cannot execute binary file: Exec format error
    /opt/intrahouse-c/install.sh: line 148: /opt/intrahouse-c/node/bin/node: cannot execute binary file: Exec format error

    ...register service

    Synchronizing state of intrahouse-c.service with SysV init with /lib/systemd/systemd-sysv-install...
    Executing /lib/systemd/systemd-sysv-install enable intrahouse-c
    ● intrahouse-c.service - intrahouse-c
    Loaded: loaded (/etc/systemd/system/intrahouse-c.service; enabled; vendor preset: enabled)
    Active: activating (auto-restart) (Result: exit-code) since Mon 2020-01-20 09:28:30 +07; 37ms ago
    Process: 1484 ExecStart=/opt/intrahouse-c/node/bin/node /opt/intrahouse-c/backend/app.js prod (code=exited, status=203/EXEC)
    Main PID: 1484 (code=exited, status=203/EXEC)

    Jan 20 09:28:30 IntraHouse systemd[1]: intrahouse-c.service: Unit entered f...e.
    Jan 20 09:28:30 IntraHouse systemd[1]: intrahouse-c.service: Failed with re...'.
    Hint: Some lines were ellipsized, use -l to show in full.

    Помогите!



  • Участник @thunder_d написал в Установка системы intraHouse:

    cannot execute binary file

    Какая-то проблема при запуске бинарника node.js
    Выполните в консоли команды и пришлите результат

    uname -a
    
    getconf LONG_BIT
    

Log in to reply