Вот довольно приличное изложение исторической привязки: https://wiki.ubuntu.com/Bugs/HowToFix
cron не является инструментом для этого. Вам нужно настроить задание upstart, которое выполняется во время выключения, предпочтительно объявляя зависимость, чтобы она выполнялась перед любыми службами, которые она требует отключения. man 5 init для получения подробных сведений о том, как правильно определить задачу запуска или завершения работы; Я не могу помочь дальше этого без дополнительной информации, так как это зависит от того, что вы пытаетесь сделать, и от каких других upstart заданий это зависит от.
Попробуйте это, заменив $HOME и $PROFILE на vapid-значения и сохраните их до ~/.init с разрешения 644.
Прежде чем что-либо сделать, убедитесь, что в /etc/fstab имеется строка типа
firefox /home/your_name/.mozilla/firefox/your_profile.default tmpfs size=128M,noauto,user,exec,uid=1000,gid=100 0 0
, где опция mount 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
В качестве упрощенной версии ответа funicorn .. upstart job, либо в /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.