[linux] запустить процесс перед выключением компьютера

Jackill

Я хочу сделать так, чтобы перед выключением компьютера от имени пользователя выполнялась определённая команда
(хотя бы такая: find ~/ -name "*~" -exec rm -f {} \; ).
Как это сделать грамотным способом? Например, кронтабу можно написать
@reboot bla-bla-bla - будет выполняться при загрузке, но ничего подобного перед выключением машины я не нашел...

evgen5555

А какая разница — перед выключением или сразу после загрузки?

Ivan8209

man shutdown
man su
---
"Аллах не ведёт людей неверных."

malikd

от имени какого пользователя?
каким образом выключается комп?

Jackill

в идеале я хотел бы, чтобы эта команда выполнялась именно перед выключением и независимо от того, каким способом выключается комп
(ну, не жёстким способом, конечно ). При этом, например, если пользователь vasya захочет, чтобы у него выполнялась такая команда, а компьютер выключает пользователь petya без ведома пользователя vasya, то у Васи эта команда всё равно выполнилась.
Я могу навскидку придумать несколько "кривых" способов сделать это, но хочется понять, есть ли грамотное решение...

Fragaria

mv shutdown shutdown.orig
cat [тут файл с твоим скриптом, в конце которого стоит вызов нормального shutdown.orig] > shutdown

Jackill

Да, это один из "кривых" способов, о которых я писал. А более изящные решения есть?

Fragaria

ну разве что вставить ссылку на скрипт в /etc/rc6.d ?

Jackill

А если у пользователя нет прав рута, то он может это как-то сделать?

Ivan8209

Может.
Если ему всё-таки придёт в голову прочитать man bash или man csh.
---
"Аллах не ведёт людей неверных."

yulya

Блин
алиас пропиши

Sharp

система какая?
во Фре, почитай man rc, секцию man.shutdown
в других - попробуй man init, может будет ссылка на что-нить нужное

Ivan8209

> система какая?
>> [linux]
Только не очень понятно, какой системы.
---
"Аллах не ведёт людей неверных."

krishtaf

Для нестандартного poweroff:
для редхато-подобных говнолинуксов нужно сделать скрипт /sbin/halt.local
Подробности в /etc/init.d/halt
для остальных говнолинуксов нужно искать их стандартные средства, либо редактировать скрипты в /etc/rc6.d/
Для выполнения пользовательских действий перед reboot необходимо написать свой сервис.
Например /etc/init.d/user-script-manager, /etc/rc6.d/KxxRun-User-Script-Manager -> /etc/init.d/user-script-manager.
/etc/init.d/user-script-manager будет обрабатывать пользовательские задания из пользовательских файлов, лежащих в /var/user-script-manager/* (или где-то еще)
Эти файлы будут создавать сами пользователи.
Скорее всего что-то подобное уже кто-то сделал. Ищи в инете.

Jackill

O! Гениальные идеи всегда очень простые! Спасибо!
А всё-таки: например, если пользователь выключает комп, нажимая на кнопку в x-менеджере, то как это сделать?
Оставить комментарий
Имя или ник:
Комментарий: