Как дождаться сигнала / попытки завершения программы и остановить его от завершения?
Я хочу написать скрипт на Bash, который будет "наблюдать" за каким-либо приложением. Как только будет предпринята попытка закрыть / закрыть это приложение, скрипт попытается остановить эту операцию завершения на несколько миллисекунд, выполнить некоторые действия и затем завершить работу приложения.
Я использую Okular, чтобы читать файлы PDF и комментировать их. Но аннотации сохраняются только в документах Окулара. Однако, если вы сохраните файл с помощью "Сохранить как", аннотации будут сохранены в самом файле PDF.
Я пытаюсь перехватить попытку пользователя закрыть Okular, нажав кнопку "x" в окне и "Сохранить как" файл okular, заменив исходный файл, а затем закройте приложение.
Предполагается, что это грязный хак для сохранения аннотаций в PDF-файле, поскольку эта функциональность не предоставляется в Linux ни одним хорошим PDF-читателем (пожалуйста, не называйте libreoffice или gimp, они не читатели).
1 ответ
Если приложение убито с -9
Вы ничего не можете с этим поделать, ни внутри приложения, ни снаружи.
Лучшее, что вы могли бы сделать, - это написать скрипт, который пользователи будут вызывать для завершения работы приложения. Этот сценарий будет отвечать за оповещение приложения о том, что завершение было неизбежным (через некоторый механизм IPC), ожидает подтверждения о том, что все в порядке, а затем завершает работу приложения.