Каково различие между Ctrl-Z, и уничтожьте - ОСТАНОВКА?

Существует также curl - мой любимый (по моему скромному мнению, более гибкий, чем wget).

Если Вы намереваетесь контролировать, Ваши веб-серверы не забывают устанавливать строку специального агента, таким образом, можно дифференцироваться, кто получил доступ серверу (если Вы делаете статистику).

14
21.03.2013, 00:05
4 ответа

Что делает Ctrl-Z отличающимся от kill -STOP, и как я могу получить поведение первого в сценарии оболочки?

CTRL-Z обычно отправляет SIGTSTP (который может быть заблокирован), и - кроме других вещей - оболочки часто сбрасывают tty к ранее сохраненному состоянию в этих случаях. Что еще более важно, однако группа процесса терминала управления установлена на PID оболочки (и с другой стороны на PID задания, возобновленного с fg).

Назад к Вашей исходной проблеме: использование температурного зависимого частотного масштабирования как, например, Cpufreqd могло бы быть на самом деле лучшим молотком для Вашего гвоздя.

12
27.01.2020, 19:51

Вы не хотите останавливаться make процесс; Вы хотите остановиться make процесс и все его дочерние процессы. Я держал пари, делают, выполнялся рекурсивно.

Вы могли попробовать set -m, затем используйте %1 вместо "$subpid".

set -m включает "управление заданиями", которое выключено значением по умолчанию в сценариях. Я думаю, что это должно работать на Ваш вариант использования, хотя люди, кажется, думают, что это - плохая идея в целом.

4
27.01.2020, 19:51

Можно отправить сигнал во все процессы в группе процесса при определении отрицательного значения PID - PGID лидера сессии.

kill -STOP -"$subpid"

Примечание: Запускать программу в новом использовании сессии setsid make. Но в Вашем случае я думаю, что это не нужно. Однако, если делают, выполняется рекурсивно, каждый экземпляр делают, мог бы быть его собственный лидер (я не уверен в этом).

Другая опция могла состоять в том, чтобы использовать killall:

killall -STOP make

Различие между Ctrl+Z и уничтожает - ОСТАНОВКА:

  • Ctrl-Z на самом деле отправляет TSTP, который может быть заблокирован.
  • ОСТАНОВКА не может быть заблокирована.
4
27.01.2020, 19:51
  • 1
    Подход PGID не работал и продолжил следующую линию вывода: /usr/local/bin/myscript: line 38: kill: (-10202) - No such process. Фоновые процессы продолжали работать. Я не думаю killall подход работал бы, потому что некоторые подпроцессы, кажется, sh вместо make. –  Taymon 21.03.2013, 00:52
  • 2
    Кажется, что процесс, в который Вы отправляете сигнал, уже закончился. Подпроцессы, названные sh, порождены, делают. В Вашем случае делают и много подпроцессов, лучшее должно было бы, вероятно, получить PIDs всех детей и ОСТАНОВИТЬ их всех. –  Jurij 22.03.2013, 17:50
  • 3
    Это закончило тем, что работало, когда я сделал это вручную от оболочки, но не в сценарии оболочки. Я думаю, что это вызвано тем, что, когда я сделал это вручную, корневой PID (от которого другие наследовали их PGID) был тот из первых make команда, но когда я сделал это из сценария, корневой PID, была из самого сценария оболочки. –  Taymon 22.03.2013, 21:20

Ctrl + C используется для уничтожения процесса сигналом SIGINT, другими словами, это вежливое уничтожение .

Ctrl + Z используется для приостановки процесса путем отправки ему сигнала SIGSTP , который подобен сигналу сна, который можно отменить, а процесс можно остановить. снова возобновился.

Однако, когда процесс приостановлен, мы можем возобновить его снова,fg(возобновив работу на переднем плане)иbg(возобновив работу в фоновом режиме ),но я не могу возобновить убитый процесс, это разница между использованием Ctrl + C и Ctrl + Z .

Как просмотреть приостановленный процесс?

Если у вас есть несколько приостановленных команд, чтобы вывести их в список, вы используете команду jobs, и вывод будет:

[1]-  Stopped                 cat
[2]+  Stopped                 vi

Как убить приостановленный процесс в фоновом режиме?

С помощью команды kill:

kill %nгде n — это номер задания (тот, что в квадратных скобках из вывода заданий ), поэтому я хочу убить кота:kill %1.

1
27.01.2020, 19:51

Теги

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