У меня есть следующий код, который работает в /etc/init.d/ под CentOS 6.6:Linux Daemon, который работает в фоновом режиме
#!/bin/sh
DAEMON=/usr/local/bin/csvmarine_X.py
PARAMETERS=""
LOGFILE=/var/log/somefile.log
start() {
echo -n "starting up $DAEMON"
RUN=`cd/&& $DAEMON $PARAMETERS > $LOGFILE 2>&1`
if [ "$?" -eq 0 ]; then
echo "Done."
else
echo "FAILED."
fi
}
stop() {
killall $DAEMON
}
status() {
killall -0 $DAEMON
if [ "$?" -eq 0 ]; then
echo "Running."
else
echo "Not Running."
fi
}
case "$1" in
start)
start
;;
restart)
stop
sleep 2
start
;;
stop)
stop
;;
status)
status
;;
*)
echo "usage : $0 start|restart|stop|status"
;;
esac
exit 0
Он отлично работает, и я хочу, чтобы заставить ее работать в фоновом режиме.
Мое понимание после поиска заключается в том, что параметр bash '$' (без кавычек) отвечает за фоновое выполнение любого процесса/скрипта.
Так я экспериментировал с линией:
RUN=`cd/&& $DAEMON $PARAMETERS > $LOGFILE 2>&1
добавив параметр '&' в конце линии или по трубопроводу это следующим образом:
RUN=`cd/&& $DAEMON $PARAMETERS > $LOGFILE 2>&1 &
и
RUN=`cd/&& $DAEMON $PARAMETERS > $LOGFILE 2>&1 | &
Может кто-нибудь, пожалуйста, дайте мне совет/руководство/учебное пособие для поиска того, что я что делать?
Конечно, если кто-нибудь может дать мне прямой ответ будет только приветствовать принято: D
Спасибо заранее!
Благодарим за руководство! Мне просто нужна дополнительная информация, руководство «sysvinitfiles» (я не нашел никакого «скелетного файла»), расположенного в «/usr/share/doc/initscripts-9.03.46/», не содержит никаких информация о «фоне». Должен ли я искать какой-либо другой термин внутри руководства? – Lopofsky
Я изменил переменную 'RUN' следующим образом: ' Run = 'кд/&& поЬир $ DAEMON $ ПАРАМЕТРОВ> $ LOGFILE 2> & 1 &' ' под убунтом это работает, но теперь под центом зева. Также скрипт не загружается при запуске. Возможно ли, что скрипт python должен быть расположен в **/etc/rc.d/**? – Lopofsky