1

В Linux и Mac OS X есть команда kill или killall command которая может позволить приложению запрашивать несохраненный документ перед выходом, например, попросить закрыть приложение или нажать кнопку "Закрыть" в окне.

Например, введите somecommand TextEdit на Mac, и TextEdit спросит вас, хотите ли вы сохранить несохраненный документ.

6 ответов6

4

Это зависит от того, как отдельная программа реагирует на сигналы. Если вы выполняете kill с 15 (SIGTERM), программа должна выполнить очистку, а затем выйти. Если, что и как другое дело.

2

Для OS-X, попробуйте скрипт в Quit приложений вежливо из командной строки с MacOSXHints.com. Вы можете указать целевому приложению, сохранять ли его открытые файлы или нет. Однако, для OS-X - он использует AppleScript.

0

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.)

0

Не похоже на это, хотя вы можете посмотреть различные доступные сигналы уничтожения и попробовать их. Я попробовал несколько, но все они, кажется, просто прерывают процесс вместо того, чтобы послать сигнал выхода.

0

Сигналы, которые завершают работу приложения, не предназначены для дальнейшего взаимодействия с пользователем. Либо пользователь больше не доступен (сигнал HUP , первоначальное значение которого было то, что пользователь был подключен к компьютеру через модем, и телефон умер), либо пользователь не хочет, чтобы его беспокоили (сигнал TERM по умолчанию и его более жестокие братья и сестры QUIT и KILL). Многие приложения будут пытаться сохранить несохраненную работу где-нибудь, если они получат сигнал HUP .

Другой вариант для Linux (и других устройств) состоит в том, чтобы отправлять уведомление окну, а не процессу: сообщение _NET_CLOSE_WINDOW указывает приложению изящно избавиться от определенного окна. Вы можете отправить это сообщение из командной строки с помощью wmctrl , например, wmctrl -c WINDOW_TITLE_SUBSTRING . К сожалению, не все приложения поддерживают это.

0

Я думаю, это зависит от приложения, но вы можете убить -2, -3 или -15 ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .