Как выполнить команду до автоматического выключения машины?
Как выполнить команду до автоматического выключения машины?
4 ответа
Как насчет того, чтобы поставить скрипт на правильный уровень запуска? Я думаю, что уровень запуска 6 выключен, а затем каталог для воспроизведения
/etc/rc6.d/
cron
не инструмент для этого. Вам нужно настроить upstart
задание, которое выполняется во время завершения работы, предпочтительно объявляя зависимость так, чтобы она выполнялась до того, как какие-либо службы потребуют завершения работы. man 5 init
подробности о том, как правильно определить задачу запуска или завершения работы; Я не могу помочь без этого без дополнительной информации, так как это зависит от того, что вы пытаетесь сделать, и что другое upstart
Работа это зависит от.
Попробуйте это, заменив $HOME
а также $PROFILE
со значениями VAPID и сохранить его в ~/.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
В качестве упрощенной версии ответа Фуникорна... выскочка, либо в /etc/init/foo.conf, либо в виде ~ /.init / foo.conf:
start on starting rc RUNLEVEL=6
task
exec myscript
Это запустится и заблокирует полное отключение до выхода "myscript".
Это все, что вам нужно. Обратите внимание, что пользовательские задания (~/.init/foo.conf) - это очень новая функция, и в моей системе 12.04 с ecryptfs / home не работают, поэтому вам, возможно, придется просто поместить задание в / etc / init.