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

Этот сценарий не запускается при запуске, идеи?

Дистрибутив - RHEL 5.

Скрипт добавлен в chkconfig вот так:

# chkconfig --add script
# chkconfig script on

Но при взятии машины отказывается заводиться, в чем может быть проблема?

#!/bin/bash
# 
# chkconfig: 2345 20 80
# description: starts script

. /etc/rc.d/init.d/functions

PATHB=/xxxx/opt/virtualenvs/primary/bin
USER=userx

function start() {
    /usr/bin/sudo /bin/su - $USER -c "$PATHB/script start"
}

function stop() {
    /usr/bin/sudo /bin/su - $USER -c "$PATHB/script stop"
}

function status() {
    /usr/bin/sudo /bin/su - $USER -c "$PATHB/script status"
}

case "$1" in
    start)
            start
            ;;
    stop)
            stop
            ;;
    restart)
            stop
            start
            ;;
    status)
            status
            ;;
    *)
            echo "Usage: $0 {start|stop|restart|status}"
            exit 1
esac

Сценарии инициализации запускаются с правами root, поэтому добавлять sudo в микс не нужно. Единственная причина использовать sudo - это непривилегированный пользователь, которому нужно запускать некоторые вещи с более высокими привилегиями, чего никогда не бывает, если вы уже являетесь пользователем root.

Поскольку использование sudo работает из командной строки, но не из сценария инициализации, я бы сделал небольшую ставку, что ваш файл sudoers содержит requiretty. Это делает sudo доступным только из оболочки, у которой есть tty, поэтому он не может, например, может быть запущен кем-то, кто пытается взломать вредоносный скрипт php или что-то в этом роде, но, конечно, он также отключает sudo из cron и init.

Вы сделали исполняемый файл скрипта? т.е. запустив chmod + x