Что такое неагрессивный способ убийства процесса?

Я хочу закрыть программу через командную строку (скажем, Firefox или Thunderbird). Программа работает нормально, и в теории я могу просто пойти FILE> CLOSE. Тем не менее, я хочу сделать это через командную строку, так что это не вариант. Я мог бы убить процесс (например, pkill firefox ), но из-за его звука это довольно жестокий способ закрыть программу. Фактически, я привык использовать это как последнее средство, особенно когда зависает программа. Честно говоря, я не знаю, является ли это подходящим способом выхода из программы. Это? Или есть лучшие способы закрытия программы?

  • Как безопасно убивать процессы, чтобы перенаправление вывода не прерывалось?
  • Более высокий уровень судо, убивающего PID
  • Linux: Убить процесс на основе аргументов
  • Можно ли убить другой пользовательский процесс, используя привилегии sudo?
  • Что делает `kill -0`?
  • Почему этот процесс не закончится после SIGTERM
  • Невозможно убить процесс, а не зомби или непрерывный сон
  • Как убить все сеансы для пользователя Linux, кроме первого, и ограничить пользователей одним сеансом входа в систему
  • 3 Solutions collect form web for “Что такое неагрессивный способ убийства процесса?”

    kill посылает сигналы процессам, по умолчанию отправляет сигнал TERM. Сигнал TERM может быть «пойман» процессами, то есть он может следить за ним, и когда он будет получен, они могут принять меры.

    Во многих случаях процессы Linux будут корректно вести себя при отправке сигнала TERM, т. Е. Они будут приводить себя в порядок, а затем автоматически закрываться. Таким образом, kill – это совершенно допустимый способ отключения многих процессов, предполагая, что разработчики правильно обработали ситуацию.

    Работает ли он для любого процесса зависит от разработчика.

    Только некоторые сигналы, такие как KILL, не могут быть пойманы, вы отправляете KILL, используя kill , запустив kill -9 , что намного более разрушительно для процесса, потому что у них нет возможности очистить.

    Используйте kill -15 [pid/name] как «нормальный» kill, который позволяет процессу выполнить очистку

    Используйте kill -9 [pid/name] как «override» kill, который немедленно уничтожает процесс.

    Можно симулировать закрытие окна. Я не уверен, как идентифицировать окна надежно. (Т.е. убить firefox, не убив gedit firefox-bug.txt ). Как прокомментировано, фундаментальный компромисс заключается в том, хотите ли вы поощрять взаимодействие пользователей (закрытый диалог подтверждения) или нет.

    https://unix.stackexchange.com/a/247163/29483

    Linux и Unix - лучшая ОС в мире.