Выполнить перед рестартом [FreeBSD]
можно оформить rtorrent в системе как сервис (если еще не так и разнести его с сервисом монтирования по ранлевелам или прописать зависимость в rc скрипте (REQUIRE)
man rcorder
и просто посмотри как устроены скрипты из /usr/local/etc/rc.d
rtorrent запускается daemon'ом через /etc/rc.conf, а ntfs монтируется fstab'ом. У скрипта rtorrent'а метод _stop есть, но он не выполняется при reboot'е почему-то...
В /etc/rc.conf ты просто задаешь нужные переменные, типа <что-то>_enable="YES"
А потом уже скрипты из /usr/local/etc/rc.d анализируют эти переменные (не будем вдаваться в подробности как именно) и либо выполняют что-то, либо нет.
Если хочешь понять, работает оно или нет, попробуй просто запустить свой скрипт с параметром stop:
/usr/local/etc/rc.d/rtorrent stop — отработает или нет.
Можешь попробовать в rc.conf добавить rc_debug="YES", тогда ты увидишь все отладочные сообщения во время работы rc-скриптов. Но их будет просто куча, будь готов.
И еще поизучай отдельно man 8 rc — там тоже найдешь что-то полезное.
p.s. С "после ребута" проблем пока не возникало, все загружается. Проблемы с "до ребута".
foo.sh Scripts that are to be sourced into the current shell
rather than a subshell have a .sh suffix. Extreme
care must be taken in using this, as the startup
sequence will terminate if the script does.
может поэтому у тебя и не доходит выполнение. попробуй выставить rc_debug="YES" и посмотреть потом логи.
Опытным путем выяснил, что rc.shutdown обрабатывается, при shutdown -r, но не при reboot.... В манах подтверждения этому не нашел, а часа два назад вообще где-то прочитал, что reboot - это алиас для shutdown...
Скрипты, выполняющиеся в текущем шелле, а не в дочернем, имеют суффикс .sh, Будьте крайне осторожны, используя эту фичу, ибо если упадёт ваш скрипт - навернется весь стартап.
reboot — это сброс дисковых кэшей на диск, после этого убийство всех работающих процессов и потом уже перезагрузка системы.
А вот shutdown -r — это сначала выполнение всех скриптов из rc.d, а потом запуск reboot. И надо делать только так.
читай man reboot внимательней.
CAVEATS
...
This command will stop the system without running any shutdown(8)
scripts. Amongst other things, this means that swapping will not be dis-
abled so that raid(4) can shutdown cleanly. You should normally use
shutdown(8) unless you are running in single user mode.
По многим общим для семейства BSD вещам стоит читать документацию из системы,
где она на два порядка лучше.
REBOOT(8) NetBSD System Manager's Manual REBOOT(8)
Опыт показывает, что вообще, при работе с FreeBSD часто стоит сначала
читать документацию по NetBSD и проверять на отсутствие возможностей.
---
Q39: А вот в юниксах буковок нету
A39: Сдуру можно много чего сломать
Оставить комментарий
feliks28
Ситуация такая: есть rtorrent+web-морда, который раздает с ntfs (ntfw-3g,rw) диска.После reboot'а на всех этих раздачах заново начинается re-check...
Насколько я понимаю, это происходит от того, что диск с ntfs при reboot'е отваливается раньше, чем убивается rtorrent. Поэтому хочется выполнить перед reboot'ом `/usr/local/etc/rc.d/rtorrent.sh stop`. Вопрос в том, как это сделать?