Страница 1 из 2
rc.d в FreeBSD 8
Добавлено: 2010-11-23 11:31:28
gonzo111
есть стандартный стартовый скрипт
/usr/local/etc/rc.d/transmission
Код: Выделить всё
#!/bin/sh
#
# $FreeBSD: ports/net-p2p/transmission-cli/files/transmission.in,v 1.3 2010/03/27 00:14:31 dougb Exp $
#
# PROVIDE: transmission
# REQUIRE: DAEMON
#
# Add the following lines to /etc/rc.conf to enable this service:
#
# transmission_enable: Set to NO by default. Set it to YES to enable it.
# transmission_watch_dir: Directory for torrent files to download
# automatically. Off by default unless you add
# a path.
# transmission_conf_dir: Directory where transmission configuration
# data is stored.
# Default: /usr/local/etc/transmission/home
# transmission_download_dir: Directory to store downloaded data.
# Default: /usr/local/etc/transmission/home/Downloads
# transmission_user: The user account transmission daemon runs as what
# you want it to be. It uses 'transmission' user by
# default. Do not sets it as empty or it will run
# as root.
#
. /etc/rc.subr
name="transmission"
rcvar=${name}_enable
command=/usr/local/bin/transmission-daemon
load_rc_config ${name}
: ${transmission_enable:="NO"}
: ${transmission_user:="transmission"}
: ${transmission_conf_dir:="/usr/local/etc/transmission/home"}
: ${transmission_download_dir:="/usr/local/etc/transmission/home/Downloads"}
transmission_flags=" \
${transmission_watch_dir:+-c ${transmission_watch_dir}} \
${transmission_conf_dir:+-g ${transmission_conf_dir}} \
${transmission_download_dir:+-w ${transmission_download_dir}} \
${transmission_flags}"
run_rc_command "$1"
./transmission status
transmission is running as pid 2057.
где хранится пид файл? в /var/run/ его нету (!)
раньше была строка в скриптах
а где оно щас берет 2057?
мне нужен пид файл для ротации логов в newsyslog.conf
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 11:38:03
FreeBSP
Код: Выделить всё
sh -c 'ls /var/run | { while read pidfile; do if [ "`cat /var/run/$pidfile`" -eq "2057" ]; then echo $pidfile; fi; done; }'
я чета в манах не увидел кпоминания про пидфайл
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 11:49:08
FreeBSP
тоесть правильнее так
grep -rn 2057 /var/run/*
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 12:14:33
gonzo111
в /var/run пид файла нету я это уже написал
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 12:30:56
Гость
ps ax
truss
и вообще проявите изобретательность ума
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 12:33:00
Alex Keda
Гость писал(а):ps ax
truss
и вообще проявите изобретательность ума
paradox снова с нами

)
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 12:37:29
gonzo111
причем тут изобретательность,
если rc.d тупо грепает пиды из ps , то это не верно в корне,
как оно помнит что это именно его пид ?
и что команда
./transmission stop
не прибьет пид запущенный мною в другом скрипте?
для этого как раз и были придуманы пид файлы насколько я понимаю
Alex Keda может по теме лучше ответишь?

Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 12:42:38
Alex Keda
ищщи где задаётся функция run_rc_command и смотри в ней как она его достаёт
чё сложного-то?
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 12:47:16
gonzo111
http://www.freebsd.org.ua/doc/ru_RU.KOI ... aemon.html
Демон будет запущен командой $command с ключами определенными в переменной $mumbled_flags. Таким образом, все данные, необходимые для стандартного метода start определены в переменных на момент запуска скрипта. В отличие от метода start, другим методам может потребоваться дополнительная информация о запущенном процессе. Например, stop должен знать об идентификаторе запущенного процесса (PID) чтобы завершить его. В нашем случае, rc.subr(8) найдет среди запущенных процессов процесс с именем $procname. Эта переменная выставляется rc.subr(8) автоматически и по-умолчанию ее значение соответствует переменной command. Другими словами, когда мы указываем значение command, мы тем самым указываем и procname. Это позволяет нашему скрипту проверить, запущен ли демон или завершить его работу.
выходит что оно тупо грепает процесс с таким названием?
как тут
http://www.freebsd.org.ua/doc/ru_RU.KOI ... n-adv.html
добавил
че то не хочет создавать файл

Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 12:52:42
FreeBSP
но она толстенькая
да и сам rc.subr не маленький.
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 12:57:28
Гость
как оно помнит что это именно его пид ?
а что программа сама не может помнить свой пид?
она его внутри себя может держать(имя пути)
а по параметру
программа /stop
к примеру
прибивать
и для этого и есть команды
ps ax
что бы увидеть все параметры запуска демона
и
truss
что бы увидеть все файлы что она открывает/создает
чудеса изобретательности ума
и больше ничего не надо
а все маны и скрипты не упомнишь
нужно только помнить как это быстро сделать
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 13:04:17
FreeBSP
интересно, что скажет дебаг
допиши в скирпт строчку
после
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 13:05:10
gonzo111
FreeBSP спасибо не увидел думал у него будет атрибут исполняемого...
я че то раньше думал, что для всех процессов от rc.d всегда падают пиды в /var/run/ , не венда все же таки..
мне надо в newsyslog.conf
сделать че то типа
Код: Выделить всё
/var/log/transmission.log transmission:transmission 640 3 100 * JCB /var/run/transmission.pid 30
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 13:13:31
ttys
gonzo111 писал(а):FreeBSP спасибо не увидел думал у него будет атрибут исполняемого...
я че то раньше думал, что для всех процессов от rc.d всегда падают пиды в /var/run/ , не венда все же таки..
мне надо в newsyslog.conf
сделать че то типа
Код: Выделить всё
/var/log/transmission.log transmission:transmission 640 3 100 * JCB /var/run/transmission.pid 30
зачем хозяин логфайла
transmission:transmission???
если его пишет
newsyslogd!!!!
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 13:16:39
gonzo111
еще один пофлудить зашел, мне так захотелось, мы с тобой в жаббере эту тему обсуждали
что мне добавить в стартовый скрипт чтоб появился PID файл?
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 20:35:36
ttys
gonzo111 писал(а):еще один пофлудить зашел, мне так захотелось, мы с тобой в жаббере эту тему обсуждали

не пойму на кой ляд???

ну да ладно, это твоё дело.
gonzo111 писал(а):что мне добавить в стартовый скрипт чтоб появился PID файл?
у меня нету ПИД файла

искал через финд

но так и не нашёл
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 21:07:19
Гость
через find как искали? по расширению .pid что ли?
пробуйте через truss
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 21:22:01
ttys
Гость писал(а):через find как искали? по расширению .pid что ли?
пробуйте через truss
да меня это в принципе и не беспокоит,

работает трансмиссия - пусть работает чё в неё лесть?
это больше нужно gonzo111

Re: rc.d в FreeBSD 8
Добавлено: 2010-11-23 23:36:54
snorlov
А искать через ps -ax | grep transmission не пробовали....
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-24 13:23:48
ttys
snorlov писал(а):А искать через ps -ax | grep transmission не пробовали....

так ищем ведь пид файл
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-24 13:41:39
snorlov
ttys писал(а):snorlov писал(а):А искать через ps -ax | grep transmission не пробовали....

так ищем ведь пид файл
На первое сообщение посмотри, там никакого pid файла нет, просто озадачился человек, почему когда запрашивается статус выдается pid процесса, а самого pid файла он не видит...
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-24 14:41:12
ttys
snorlov писал(а):ttys писал(а):snorlov писал(а):А искать через ps -ax | grep transmission не пробовали....

так ищем ведь пид файл
На первое сообщение посмотри, там никакого pid файла нет, просто озадачился человек, почему когда запрашивается статус выдается pid процесса, а самого pid файла он не видит...

ну а я о чём?
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-24 14:56:33
Гость
https://trac.transmissionbt.com/browser ... n/daemon.c
поиск по строке "Saved pidfile"
можно через -x задать в скрипте флагс - путь на пид файл
и он будет явный
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-24 15:16:40
gonzo111
пид файл нам всем нужен (кто юзает трансмишн) ,чтобы сделать корректную ротацию логов, при условии что лог пишет сам трансмишн...
Re: rc.d в FreeBSD 8
Добавлено: 2010-11-24 18:54:51
hizel
от спасибо! :-) избавил меня от мучений, надеюсь на этом топик сдохнет, а то его существование в ТОПе - как сирпом по яйцам