Как & ldquo; finish & rdquo; команда в терминале?

Итак, если вы считаете, что вышеупомянутые ответы слишком ядовиты для вашей системы (вырывание gnome-desktop prereqs, удаление / переименование упакованных файлов? Нет, спасибо!), у меня может быть решение для вас.

[d1 ] Создайте ~/.config/upstart/kill-evolution-services.conf и заполните его следующим кодом. Обязательно замените ПОЛЬЗОВАТЕЛЬ своим именем пользователя.

start on desktop-start
stop on desktop-end

script
  ME=USER
  GIVEUP=60
  while ! pgrep -u "$ME" -f '^/usr/lib/evolution/evolution'; do
    GIVEUP=$((GIVEUP - 1))
    if test $GIVEUP = 0; then
      break
    fi
    sleep 1
  done
  pkill -u "$ME" -f '^/usr/lib/evolution/evolution'
end script

Это будет работать при входе в систему, дождитесь, пока службы эволюции не будут запущены (до 60 секунд, настроены с помощью GIVEUP), а затем убейте их. Из того, что я видел (в 16.04), они останутся мертвыми до тех пор, пока вы не будете взаимодействовать с каким-либо приложением, которое им необходимо, например gnome-calendar (приложение, а не индикатор). Чтобы противостоять этому, вы можете добавить к crontab следующее (запустите «crontab -e» с терминала). Опять же, не забудьте заменить USER своим именем пользователя.

*/1 * * * * pkill -u USER -f '^/usr/lib/evolution/evolution'

Это попытается убить службы эволюции один раз в минуту.

Таким образом, мы избавляемся от эволюционных сервисов, сумасшедший или даже вызов sudo. Как утверждается, проблемы с использованием памяти с этими сервисами были исправлены в Gnome 3.20, но Ubuntu еще не предоставил им резервные копии до 3.18. Следите за https://bugs.launchpad.net/ubuntu/+source/indicator-datetime/+bug/1589605, хотя это не имеет ничего общего с показателем-датам, из того, что я могу сказать.

Если какое-либо из этих параметров имеет побочные эффекты в вашей конфигурации, вы можете просто удалить ~/.config/upstart/kill-evolution-services.conf и удалить линию crontab (опять же, [ f6] с терминала). Затем выйдите из системы и вернитесь для хорошей меры, если вы параноик.

0
задан 4 December 2017 в 21:54

6 ответов

В примере git log просто нажмите клавишу q. Q завершает текущее действие. Q также работает в команде more и других.

1
ответ дан 22 May 2018 в 23:02

В примере git log просто нажмите клавишу q. Q завершает текущее действие. Q также работает в команде more и других.

1
ответ дан 18 July 2018 в 13:59

В примере git log просто нажмите клавишу q. Q завершает текущее действие. Q также работает в команде more и других.

1
ответ дан 24 July 2018 в 20:18

Это зависит от того, обрабатывается ли процесс конкретным сигналом. Так, например, в системах Linux «ctrl + c» дает SIGINT. Вы также можете попробовать «ctrl + z», чтобы узнать, уважает ли он SIGTSTP. Это фактически не убивает процесс, поэтому, если вы хотите закончить его, вам придется найти идентификатор задания и убить его. Команда по умолчанию kill отправляет SIGTERM, а kill -9 отправляет SIGKILL. Конечно, для команд kill вам нужно будет открыть новый терминал и определить идентификатор процесса того, что вы хотите убить. В конце концов, нет «серебряной пули». SIGKILL часто считается «самым сильным», но он также самый жесткий и рекомендуется только в качестве последнего средства, поскольку он не позволяет процессу грациозно прекратить работу. Вот ссылка на более полный список сигналов:

https://en.wikipedia.org/wiki/Unix_signal

Многие проекты считают это ошибкой, если они неправильно обрабатывают определенные сигналы. Таким образом, всегда можно зарегистрировать ошибку с проектом, который не выдает «ctrl + c», и посмотреть, будут ли они исправлять его для обработки SIGINT ожидаемым способом.

1
ответ дан 22 May 2018 в 23:02

Это зависит от того, обрабатывается ли процесс конкретным сигналом. Так, например, в системах Linux «ctrl + c» дает SIGINT. Вы также можете попробовать «ctrl + z», чтобы узнать, уважает ли он SIGTSTP. Это фактически не убивает процесс, поэтому, если вы хотите закончить его, вам придется найти идентификатор задания и убить его. Команда по умолчанию kill отправляет SIGTERM, а kill -9 отправляет SIGKILL. Конечно, для команд kill вам нужно будет открыть новый терминал и определить идентификатор процесса того, что вы хотите убить. В конце концов, нет «серебряной пули». SIGKILL часто считается «самым сильным», но он также самый жесткий и рекомендуется только в качестве последнего средства, поскольку он не позволяет процессу грациозно прекратить работу. Вот ссылка на более полный список сигналов:

https://en.wikipedia.org/wiki/Unix_signal

Многие проекты считают это ошибкой, если они неправильно обрабатывают определенные сигналы. Таким образом, всегда можно зарегистрировать ошибку с проектом, который не выдает «ctrl + c», и посмотреть, будут ли они исправлять его для обработки SIGINT ожидаемым способом.

1
ответ дан 18 July 2018 в 13:59

Это зависит от того, обрабатывается ли процесс конкретным сигналом. Так, например, в системах Linux «ctrl + c» дает SIGINT. Вы также можете попробовать «ctrl + z», чтобы узнать, уважает ли он SIGTSTP. Это фактически не убивает процесс, поэтому, если вы хотите закончить его, вам придется найти идентификатор задания и убить его. Команда по умолчанию kill отправляет SIGTERM, а kill -9 отправляет SIGKILL. Конечно, для команд kill вам нужно будет открыть новый терминал и определить идентификатор процесса того, что вы хотите убить. В конце концов, нет «серебряной пули». SIGKILL часто считается «самым сильным», но он также самый жесткий и рекомендуется только в качестве последнего средства, поскольку он не позволяет процессу грациозно прекратить работу. Вот ссылка на более полный список сигналов:

https://en.wikipedia.org/wiki/Unix_signal

Многие проекты считают это ошибкой, если они неправильно обрабатывают определенные сигналы. Таким образом, всегда можно зарегистрировать ошибку с проектом, который не выдает «ctrl + c», и посмотреть, будут ли они исправлять его для обработки SIGINT ожидаемым способом.

1
ответ дан 24 July 2018 в 20:18

Другие вопросы по тегам:

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