На Linux и Mac OS X, там a kill
или killall command
это может позволить приложению попросить несохраненный документ перед выходом, отчасти как просьба, чтобы приложение вышло, или нажатие на "близкую" кнопку окна.
Например, ввести somecommand TextEdit
на Mac и TextEdit спросит Вас, если Вы захотите сохранить несохраненный документ.
Это составило, как отдельная программа отвечает на сигналы. Если Вы делаете a kill
с 15 (SIGTERM
) программа, как предполагается, делает, очистка затем выходит. Если, какой и как другой вопрос.
Для OS X попробуйте сценарий в приложениях Выхода вежливо из командной строки из MacOSXHints.com. Можно сказать целевое приложение, сохранить ли его открытые файлы. ОПРЕДЕЛЕННЫЙ ДЛЯ OS X, хотя - это использует AppleScript.
Не похож на него, хотя можно посмотреть, проверяют различные доступные сигналы уничтожения и испытывают их. Я попробовал некоторых, но они все, кажется, просто прерывают процесс вместо того, чтобы отправить сигнал выхода.
Mac:
osascript -e 'tell app "TextEdit" to quit'
Если необходимо указать приложение как аргумент,
osascript -e 'on run args
tell app (item 1 of args) to quit
end run' TextEdit
(Или сохраните заключенный в кавычки сценарий в файле и osascript
script
appname
.)
Я думаю, что это зависит от приложения, но уничтожьте-2,-3 или-15 мог бы быть тем, что Вы ищете...
Сигналы, которые завершают приложение, не предназначены, чтобы позволить приложению дальнейшее взаимодействие с пользователем. Любой пользователь больше не доступен ( HUP
сигнал, исходное значение которого состояло в том, что пользователь был подключен к компьютеру через модем и телефон, умер), или пользователь не хочет быть побеспокоенным (значение по умолчанию TERM
предупредите и его более сильные одноуровневые элементы QUIT
и KILL
). Много приложений попытаются сохранить несохраненную работу где-нибудь, если они получат HUP
сигнал, все же.
Другая опция для Linux (и другие нельды) состоит в том, чтобы отправить уведомление окну, а не процесс: _NET_CLOSE_WINDOW
сообщение говорит приложению избавляться от определенного окна корректно. Можно отправить это сообщение от командной строки с wmctrl
, например, wmctrl -c WINDOW_TITLE_SUBSTRING
. К сожалению, не вся поддержка приложений это.