Дистрибутив - 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