|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Kirill Frolov 2:5030/827.2 05 Apr 2003 09:32:36 To : Slava Astashonok Subject : убить процессы, запущенные из скрипта -------------------------------------------------------------------------------- 04 Apr 03 13:32, Slava Astashonok wrote to Kirill Frolov: >> man bash -> job control SA> Тогда расскажите как это использовать в _скриптах_ Пример скрипта, который прерывает порождённый им процесс при получении сигнала SIGINT (дело в том, что сам порождённый процесс на SIGINT не реагирует, понимает только SIGHUP): === Cut === #!/bin/sh # GhostScript SIGINT bug workaround function gsint() { # функция получает управление при получениии # сигнала SIGINT (смотри ниже) kill -HUP %+ # убивается дочерний процесс # сигналом SIGHUP } # начало исполнения скрипта set -m # разрешается job control trap gsint SIGINT # перехват прерывания SIGINT функцией gsint() # в этой строке вместо gsint может стоять # любая команда... /usr/bin/gs "$@" <&0 >&1 & # запуск процесса # ему передаются stdin и stdout вызывающей # программы (иначе он в бэкграунде остановится # при чтении из stdin) # здесь ещё можно запустить несколько процессов... wait %+ # ожидание завершения процесса и выход # если выйти сразу, то дочерний процесс получит SIGHUP # если процесс издох или убит в функции gsint, # то wait окончит работу === Cut === man bash читай, там всё написано (остальное можно домыслить)! --- [ZX] * Origin: Съешь ещё этих мягких французских булок, да выпей чаю (2:5030/827.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/33313e8e6a80.html, оценка из 5, голосов 10
|