на основе этого поста здесь Я попытался создать исполняемый файл в папке /etc/init.d/
с именем raumserver
со следующим содержимым:
#! /bin/sh
# /etc/init.d/raumserver
### BEGIN INIT INFO
# Provides: raumserver
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Example initscript
# Description: This file should be used to construct scripts to be
# placed in /etc/init.d.
### END INIT INFO
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting raumserver.js"
# run application you want to start
node /home/openhabian/node_modules/node-raumserver/raumserver.js > /home/openhabian/node_modules/node-raumserver/logs/RPiraumserver.js
#/home/pi/downloads/node-v0.10.24-linux-arm-pi/bin/node /home/pi/test.js >> /home/pi/test.log
;;
stop)
echo "Stopping raumserver.js"
# kill application you want to stop
killall -9 node
# Not a great approach for running
# multiple node instances
;;
*)
echo "Usage: /etc/init.d/raumserver {start|stop}"
exit 1
;;
esac
exit 0
Вы видите, что мой узелJSприложение находится в /home/openhabian/node_modules/node-raumserver/
и называется raumserver.js
Когда я запускаю этот исполняемый файл через /etc/init.d/raumserver start
, я получаю сообщение об ошибке WARNING: No configurations found in configuration directory:/etc/init.d/config
, которое приводит к ошибке, поскольку в этой конфигурации заявлено, что используется другой портвместо 8080, который уже используется.Таким образом, сам исполняемый файл не запускается.
Это основано на том факте, что этот исполняемый файл ищет папку config
в текущем пути, в котором исполняемый файл находится в /etc/init.d/config
, которого там нет.Поскольку путь к приложению nodeJS - /home/openhabian/node_modules/node-raumserver/
, я ожидаю, что он будет искать там папку, которая будет там доступна.
Почему это происходит и как я могу это изменить?
Я планирую запустить этот исполняемый файл при запуске через демон.Мой план - пойти на chmod +x /etc/init.d/raumserver
, а затем sudo update-rc.d raumserver defaults
, который я прочитал в Интернете и должен работать.
Есть идеи, как указать приложению искать в указанной папке nodeJS-приложения?Вскоре я подумал о копировании папки config
в /etc/init.d/
, но, думаю, это будет очень неприятно для будущих обновлений и т. Д. И т. Д.
Заранее спасибо