Страница 1 из 1

Не запускается rc.d скрипт внутри jail-клетки при её запуске

Добавлено: 2012-08-23 18:55:33
Ayh
Доброго времени суток.
Установлена FreeBSD 9.0-STABLE. Создал в ней клетку "lab" по хэндбуку. В rc.conf следующие опции:

Код: Выделить всё

cat /etc/rc.conf |grep -i jail
#JAIL
jail_enable="YES"
jail_list="lab"
jail_lab_rootdir="/usr/jail/lab"       
jail_lab_hostname="lab.dev"         
jail_lab_ip="192.168.1.150"
jail_lab_devfs_enable="YES"                        
jail_lab_devfs_rules="jail"
jail_lab_procfs_enable="YES"
jail_lab_mount_enable="YES"
jail_lab_flags="-l -U root"
При запуске в неё монтируются две папки:

Код: Выделить всё

cat /etc/fstab.lab 
/var/run/www/	/usr/jail/lab/var/run/www	nullfs	rw	0	0
/usr/local/www/project.dev	/usr/jail/lab/usr/local/www/project.dev	nullfs	rw	0	0
Далее написал скрипт запуска для django:

Код: Выделить всё

cat /usr/jail/lab/usr/local/etc/rc.d/project
#!/bin/sh
#
# PROVIDE: project
# REQUIRE: DAEMON
# BEFORE: 
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf to enable project:
#
#  project_enable="YES"
. "/etc/rc.subr"

USER="www"
name=project
start_cmd="${name}_start"
stop_cmd="${name}_stop"
socket="/var/run/www/${name}.sock"
pidfile="/var/run/www/${name}.pid"
procname="/usr/local/bin/python"
command="/usr/local/www/project.dev/mysite/manage.py"
rcvar=`set_rcvar`
load_rc_config $name
project_start()
{
 /bin/echo -n "Starting ${name}"
 sudo -u ${USER} ${procname} ${command} runfcgi maxchildren=10 socket=${socket} pidfile=${pidfile} timeout=300 umask=0002
 /bin/echo "."
}

project_stop()
{
 /bin/echo -n "Stoping ${name}" 
 sudo -u ${USER} kill $(cat ${pidfile}) 
 /bin/echo "."
}

run_rc_command "$1"
И вызываю его при старте клетки lab:

Код: Выделить всё

cat /usr/jail/lab/etc/rc.conf 
sshd_enable="YES"
project_enable="YES"
rc_debug="YES"
rc_info="YES"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
В запущенной клетке этот скрипт нормально запускается и останавливается руками:

Код: Выделить всё

[root@lab ~]# /usr/local/etc/rc.d/project start
/usr/local/etc/rc.d/project: DEBUG: checkyesno: project_enable is set to YES.
/usr/local/etc/rc.d/project: DEBUG: run_rc_command: doit: project_start 
Starting project.
[root@lab ~]# /usr/local/etc/rc.d/project stop
/usr/local/etc/rc.d/project: DEBUG: run_rc_command: doit: project_stop 
Stoping project.
Но почему-то самостоятельно при старте jail-a этот сркипт ничего не запускает.
В логе /usr/jail/var/log/messages вот что:

Код: Выделить всё

Aug 23 19:34:28 lab user: /etc/rc: DEBUG: checkyesno: project_enable is set to YES.
Aug 23 19:34:28 lab user: /etc/rc: DEBUG: run_rc_command: doit: project_start 
Т. е. скрипт вызывается, но процессы, которые он должен создавать, не появляются.
Почему?

Re: Не запускается rc.d скрипт внутри jail-клетки при её зап

Добавлено: 2012-08-25 3:27:27
Ayh
Выяснил, что всему виной конструкция "sudo -u ${USER} команда" в моём стартовом скрипте.
Заменил на "su -m ${USER} -c "команда"", теперь скрипт запускается при загрузке jail-a.

Не запускается rc.d скрипт внутри jail-клетки при её запуске

Добавлено: 2015-02-19 10:43:27
net-adm.ru
Я запускаю Django так - http://www.net-adm.ru/articles/60-djang ... ation.html

Не запускается rc.d скрипт внутри jail-клетки при её запуске

Добавлено: 2015-02-19 14:21:28
FreeBSP
полный пути..
http://forum.lissyara.su/viewtopic.php?p=298993#p298993
при запуске из rc переменная $PATH выглядит не так как при интерактивном логине
запили /var/log/all.log

Не запускается rc.d скрипт внутри jail-клетки при её запуске

Добавлено: 2015-02-19 18:13:36
Alex Keda
Я в rc.conf обычно её сразу задаю