Передайте SIGINT через bash-скрипт в приложение

390
sizzzzlerz

У меня есть приложение для Linux, написанное на C ++, которое перехватывает прерывание SIGINT для окончательной очистки перед выходом. Я называю это приложение в скрипте bash. Теперь, когда я набираю control-C со сценарием bash, работающим на переднем плане, сценарий завершается так же, как и вызываемая им программа, но без выполнения окончательного кода очистки. Как я могу сделать так, чтобы прерывание проходило через сценарий bash непосредственно к приложению, что привело к окончательной очистке, а затем к обычному завершению, которое затем привело бы к завершению самого сценария?

1

2 ответа на вопрос

1
Mikey T.K.

bash also has the ability to trap SIGINT. It would be feasible to trap the signal so the script doesn't die, and then in the trap handler, use kill to pass the signal off to your application.

1
infixed
#somecommand has to be a unique substring of the command being run trap "kill -3 %?somecommand" sigint somecommand& wait %?somecommand 

Похожие вопросы