Как я могу выполнить команду, прежде чем машина автоматически закроется?
Как насчет вставить сценарий корректный runlevel? Я думаю, что runlevel 6 является завершением работы, и затем каталог для проигрывания в
/etc/rc6.d/
cron
не инструмент для этого. Необходимо настроить upstart
задание, которое выполняется во время завершения работы, предпочтительно объявляя зависимость так, чтобы это работало перед любыми сервисами, это требует закрытия. man 5 init
для получения дополнительной информации о том, как правильно определить задача завершения работы или запуск; я не могу помочь кроме того без большей информации, поскольку она зависит от того, что Вы пытаетесь сделать и что другой upstart
задания это зависит от.
Как упрощенная версия ответа funicorn.. новомодное задание, или в/etc/init/foo.conf или как ~/.init/foo.conf:
start on starting rc RUNLEVEL=6
task
exec myscript
Это будет работать и блокировать все завершение работы до "myscript" выходы.
Это - все, в чем Вы нуждаетесь. Обратите внимание, что пользовательские задания (~/.init/foo.conf) являются очень новой возможностью, и в моих 12,04 системах с ecryptfs / домой не работают, таким образом, Вам, вероятно, просто придется поместить задание в/etc/init.
Попробуйте этого, заменив $HOME
и $PROFILE
с пресными значениями и сохраняют его к ~/.init
с разрешением 644
.
Прежде чем Вы сделаете что угодно, удостоверьтесь, что существует строка как
firefox /home/your_name/.mozilla/firefox/your_profile.default tmpfs size=128M,noauto,user,exec,uid=1000,gid=100 0 0
в /etc/fstab
, где опция монтирования noauto
препятствует тому, чтобы tmpfs был автосмонтирован, который мог быть изменен на auto
к Вашему предпочтению. Я оставляю его там, чтобы хранить верность целой новомодной работе в целостности.
description "automatic firefox profile ram caching"
start on started mountall
stop on stopping mountall
env HOME="/home/your_name"
env PROFILE="your_profile.default"
script
if test -z "$(mount | grep -F "${HOME}/.mozilla/firefox/${PROFILE}" )"
then
mount "${HOME}/.mozilla/firefox/${PROFILE}"
fi
end script
post-start script
cd "${HOME}/.mozilla/firefox"
if test -f packed.tar
then
tar xpf packed.tar
echo "$(date): firefox profile unpacked to ram" >> unpack.log
else
tar xpf packed.tar.old
echo "$(date): backup profile unpacked to ram" >> unpack.log
fi
touch "${PROFILE}/.unpacked"
end script
pre-stop script
cd "${HOME}/.mozilla/firefox"
if test -f "${PROFILE}/.unpacked"
then
tar --exclude '.unpacked' -cpf packed.tmp.tar "$PROFILE"
mv packed.tar packed.tar.old
mv packed.tmp.tar packed.tar
rm "$PFORILE/.unpacked"
echo "$(date) firefox profile packed from ram" >> pack.log
else
echo ".unpacked is missing. pack current session data to newfile"
tar -cpf packed-$(date +%Y%m%d%H%M).tar "$PROFILE"
fi
end script