Назад | Перейти на главную страницу

сценарий инициализации, который регистрирует вывод сценария

Как это может быть сделано? Я знаю, что это довольно просто и включает добавление чего-то вроде & или &> к фактической команде, запускающей сценарий инициализации.

Но каков наилучший подход и как обеспечить отсоединение сценария инициализации, предположим, что файл журнала - /var/log/customDaemon.log?

Вот сценарий инициализации, который у меня есть. Я также не уверен, является ли подход в сценарии аккуратным или просто неприятным взломом.

#!/bin/bash
#
# /etc/rc.d/init.d/customDaemon
#
# description: "The Daemon"
# processname: customDaemon
# pidfile: "/var/run/customDaemon.pid"

# Source function library.
. /etc/rc.d/init.d/functions

start() {
    echo "Starting customDaemon"
    /var/customDaemon &> /dev/null &
    return 1
}

stop() {
    echo "Stopping tweriod"
    prockill customDaemon   
    return 2
}

case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        stop
        start
    ;;
    reload)
        restart
    ;;
    status)
        status customDaemon
    ;;
    *)
        echo "Usage: customDaemon [start|stop|restart|status]"
        exit 1
    ;;
esac

Попробуй это:

/var/customDaemon >> /var/log/customDaemon.log 2>&1 &

Я предлагаю вам запустить службу с обычным пользователем вместо root.

Чтобы показать [ ХОРОШО ], [ НЕ СМОГЛИ ] сообщения, вы можете проверить статус выхода, примерно так:

/var/customDaemon >> /var/log/customDaemon.log 2>&1 &
RETVAL=$?
[ $RETVAL = 0 ] && echo -ne '\t\t\t\t\t[  \033[32mOK\033[0m  ]\n'

Вы также можете взглянуть на предварительно определенные функции в /etc/rc.d/init.d/functions: daemon, killproc, action, ...

/var/customDaemon >> /var/log/customDaemon.log 2>&1 &
RETVAL=$?
[ $RETVAL = 0 ] && action $"Starting customDaemon... " /bin/true

Замените / dev / null на имя файла для ведения журнала.

start() {
    echo "Starting customDaemon"
    /var/customDaemon > /var/log/customDaemon/console.log &
    return 0
}

Я также изменил код возврата, потому что, если он может запуститься, он должен вернуть 0 - для успеха.

Качество init-скрипта в порядке. Ничего страшного не происходит, и у вас есть lsb-функции, что очень хорошо.

Что можно улучшить, это если приложение поддерживает перенаправление ведения журнала, чтобы вы могли правильно обернуть вещи с помощью logrotation.

Также было бы хорошо, если бы вы проверили, успешно ли запустился демон, и выдавали бы ошибку (и выходили 1) в случае неудачи.