problem s ukoncovanim rc scriptu v jailu pri rebootu
Miroslav Lachman
000.fbsd at quip.cz
Sat Dec 15 14:03:55 CET 2007
Mam tu nasledujici problem, se kterym si nevim rady a tak doufam, ze se
tu najde nekdo, kdo ma hlubsi znalosti jailu a rc scriptu (moc nevim,
jak to vlastne debugovat).
Napsal jsem si script, ktery mi pri bootu spousti weby pouzivajici
Django jako FastCGI. Script v podstate funguje - dokud ho zkousim
ovladat rucne (v jailu) volanim:
/usr/local/etc/rc.d/django-runfcgi.sh start
a vypinani pres
/usr/local/etc/rc.d/django-runfcgi.sh stop
pripadne spusteni / vypnuti jen konkretniho webu volanim
django-runfcgi.sh start jmenoweb
django-runfcgi.sh stop jmenoweb
Problem je v tom, ze pri rebootu stroje (a tim ukonceni jailu) se ten
script patrne neprovede jak ma, jelikoz neodstrani pri vypinani PID file
a tak po rebootu nedojde ke spusteni. Mozne je taky to, ze se script
provede, ale "neco" se nesyncne spravne na filesystem, tomu uz ja moc
nerozumim.
Data k jednotlivym webum se nacitaji z konfiguracniho souboru i kdyz by
stejne tak mohly byt primo v rc.conf (podobne, jako je tomu u
konfigurace jailu
Funkce pro vypinani v tom rc scriptu vypada nasledovne:
django_runfcgi_stop()
{
echo -n "Stoping django fcgi sites: "
for site in ${django_sites}
do
eval _user=\$django_${site}_user
eval _dir=\$django_${site}_dir
eval _conf=\$django_${site}_conf
if [ -d "${_dir}" ]; then
cd "${_dir}"
_pidfile="${_dir}/tmp/django-fcgi.pid"
if [ -r "${_pidfile}" ]; then
echo " "
_pid=`cat "${_pidfile}"`
su "${_user}" -c "kill ${_pid} && rm ${_pidfile} && echo -n ${site} "
echo -n " "
else
print_debug "PID file does not exists: ${_pidfile}"
fi
else
print_debug "directory does not exists: ${_dir}"
fi
done
echo
}
Hlavni otazka tedy zni - jak zjistit, co se tam deje pri tom vypinani
jailu? Bohuzel to standardne nikam nic nevypisuje / neloguje. Je tedy
nejaka moznost, jak zapnout nejake logovani zpracovani ukonceni vsech rc
scriptu v jailu?
Mirek
More information about the Users-l
mailing list