2015-02-04 3 views
0

У меня есть следующий код, который работает в /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

Спасибо заранее!

ответ

1

Используйте «шаблон», который предоставляется, в debian он находится в /etc/init.d/skeleton, а для centos это было что-то вроде/usr/share/doc/initscripts - */sysvinitfiles/skeleton по крайней мере в 6. Используйте это, или вы можете легко загрузить его только через «init.d/skeleton» google.

+0

Благодарим за руководство! Мне просто нужна дополнительная информация, руководство «sysvinitfiles» (я не нашел никакого «скелетного файла»), расположенного в «/usr/share/doc/initscripts-9.03.46/», не содержит никаких информация о «фоне». Должен ли я искать какой-либо другой термин внутри руководства? – Lopofsky

+0

Я изменил переменную 'RUN' следующим образом: ' Run = 'кд/&& поЬир $ DAEMON $ ПАРАМЕТРОВ> $ LOGFILE 2> & 1 &' ' под убунтом это работает, но теперь под центом зева. Также скрипт не загружается при запуске. Возможно ли, что скрипт python должен быть расположен в **/etc/rc.d/**? – Lopofsky

Смежные вопросы