init.d запуск / остановка скриптов - PullRequest
1 голос
/ 29 ноября 2011

Я должен вызвать Perl-программу в сценарии запуска / остановки.У меня есть моя Perl-программа в пути / к / program: / home / nuthan / server.Теперь моя задача - создать скрипт запуска / остановки.то есть нужно вызвать команду daemon -d -v -r perl / home / nuthan / server -l / tmp / k при запуске и убить pid при остановке.Я нашел слишком много скриптов в сети, я нашел это в http://www.cyberciti.biz/tips/linux-write-sys-v-init-script-to-start-stop-service.html., но я не понимаю этого, так как я новичок в Perl.Пожалуйста, помогите, где я могу добавить команды, или я не прав?

#!/bin/bash
# description: Foo server

# Get function from functions library
. /etc/init.d/functions
# Start the service FOO
start() {
    initlog -c "echo -n Starting FOO server: "
    /path/to/FOO &
    ### Create the lock file ###
    touch /var/lock/subsys/FOO
    success $"FOO server startup"
    echo
}
# Restart the service FOO
stop() {
    initlog -c "echo -n Stopping FOO server: "
    killproc FOO
    ### Now, delete the lock file ###
    rm -f /var/lock/subsys/FOO
    echo
}
### main logic ###
case "$1" in
start)
start
    ;;
  stop)
    stop
    ;;
 status)
    status FOO
    ;;
restart|reload|condrestart)
    stop
    start
    ;;
*)
    echo $"Usage: $0 {start|stop|restart|reload|status}"
    exit 1
esac
exit 0

1 Ответ

2 голосов
/ 29 ноября 2011

Здесь вам нужно поместить команду daemon в start function.

start() {
    initlog -c "echo -n Starting FOO server: "
    daemon -d -v -r perl /home/nuthan/server -l /tmp/k
    ### Create the lock file ###
    touch /var/lock/subsys/FOO
    success $"FOO server startup"
    echo
}

Обычно init.d сценарии должны записывать pid, а killproc должен знать, где найтиthe pid.

Однако существует так много способов, что это не сработает, как ожидалось, вы узнаете много нового о том, как это исправить в сценариях unix, perl и init.d.

...