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

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Ayh
проходил мимо
Сообщения: 2
Зарегистрирован: 2012-08-23 18:11:17

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

Непрочитанное сообщение Ayh » 2012-08-23 18:55:33

Доброго времени суток.
Установлена 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 
Т. е. скрипт вызывается, но процессы, которые он должен создавать, не появляются.
Почему?
Последний раз редактировалось f_andrey 2012-08-23 19:00:56, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Ayh
проходил мимо
Сообщения: 2
Зарегистрирован: 2012-08-23 18:11:17

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

Непрочитанное сообщение Ayh » 2012-08-25 3:27:27

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


Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

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

Непрочитанное сообщение FreeBSP » 2015-02-19 14:21:28

полный пути..
http://forum.lissyara.su/viewtopic.php?p=298993#p298993
при запуске из rc переменная $PATH выглядит не так как при интерактивном логине
запили /var/log/all.log
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35437
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2015-02-19 18:13:36

Я в rc.conf обычно её сразу задаю
Убей их всех! Бог потом рассортирует...