Это зависит от того, под чем Вы подразумеваете "сгенерированный пользователями". Большая часть конфигурации, которую Вы будете иметь, о сервисах/демонах и приложениях, работающих на Вашей системе. Большинство из них помещает их конфигурацию в / и т.д. Основанные на пользователе приложения имеют свою конфигурацию в Вашем корневом каталоге (обычно в каталоге приложения). Но у Вас могут быть некоторые приложения, которые также хранят их данные в/var/lib или/var/spool.
Так ответ: "это зависит от того, что Вы работаете на своей машине".
trap [-lp] [[arg] sigspec ...]
... Если sigspec является ВЫХОДОМ (0), аргумент команды выполняется на выходе от оболочки.
ловушка на 0 запускается при выходе оболочки. Обычно он используется для очистки tmp файлов в одном месте, которое всегда выполняется:
tmp=/tmp/myscript.$$
trap 'rm -f $tmp; exit' 0 1 2 15
do_a_bunch_of_stuff
exit
выход в конце ловушки выходит из оболочки при очистке с правильным статусом.
Как показывает @Mat в своем ответе, при использовании СИГСПЕКА 0 в команде trap
при выходе из скрипта команда trap
будет запущена.
Этот пример иллюстрирует, что произойдет.
$ cat tr.bash
#!/bin/bash
echo "PID: $$"
trap 'echo hi; exit 1' 0 1 2 15
while [ 1 ]; do
sleep 3
done
Когда мы выполняем это:
$ ./tr.bash
PID: 24086
, он сидит здесь и ждет неограниченное количество времени. В другом окне, если мы сейчас отправим сигналы kill
, вы увидите, что kill -0
не убьет процесс, даже если сигнал 0 перечислен в команде trap
.
$ kill -0 $(pgrep tr.bash)
$
Однако, если мы убьем
скрипт, используя сигнал 1, убьем -1
:
$ kill -1 $(pgrep tr.bash)
$
Мы увидим, что скрипт выходит, и распечатаем сообщение "привет" 2 раза. Первое для сигнала 1, а второе потому, что скрипт завершил работу.
$ ./tr.bash
PID: 24086
hi
hi
0
в оболочкеtrap
команда. При отправке сигнала сkill
, количество сигнала 0 средств не отправить сигнал, в конце концов; это - способ протестировать существование целевого процесса. – Gilles 'SO- stop being evil' 24.07.2011, 17:00trap -l
! – amphetamachine 25.07.2011, 11:59