Я пытаюсь написать скрипт Bash, который, когда получает сигнал SIGINT, создает свою копию перед выходом.Таким образом, когда пользователь пытается уничтожить этот сценарий с помощью сигнала SIGINT, копия процесса появляется снова.
trap "echo Exiting...?; ./ghoul.sh; exit 1" SIGINT
while :
do
echo Process Number $$, with PPID $PPID!
sleep 1
done
Однако всякий раз, когда я приостанавливаю процесс и проверяю ps -f
, происходит несколько процессов сценария.(дети и дети детей).Команда выхода, кажется, никогда не запускается, так как ожидает выхода детей.Я хочу найти способ запустить сценарий в операторе trap
и завершить работу, сохраняя полученный дочерний процесс.Есть ли способ сделать это, кроме создания ребенка в качестве фонового процесса?