Существуют остановленные задания (на выходе удара)

Это make -C команда должна быть разделена,

т.е.

obj-m += testModule.o

default:
    make -C /lib/modules/`uname -r`/build SUBDIRS=$(PWD) modules
162
06.09.2016, 14:12
2 ответа
[117796] Остановленное задание - это задание, которое было временно помещено в фоновое состояние и больше не выполняется, но все еще использует ресурсы (т.е. системную память). Так как это задание не подключено к текущему терминалу, оно не может производить вывод и не получает входных данных от пользователя.
  • Вы можете видеть задания, которые вы выполняете, используя встроенную команду [118196]jobs[118197] в bash, возможно, и в других shell'ах. Пример:
  • Вы можете возобновить остановленное задание, используя встроенную команду [118198]fg[118199] (на переднем плане) bash. Если у Вас несколько остановленных команд, Вы должны указать, какую из них возобновить, передав номер jobspec в командной строке с помощью [118200]fg[118201]. Если остановлена только одна программа, Вы можете использовать [118202]fg[118203] самостоятельно:
  • На этом этапе Вы возвращаетесь в интерпретатор питона и можете выйти, используя controll-D.
  • И наоборот, Вы можете [118204]kill[118205] выполнить команду либо с помощью jobspec, либо с помощью PID. Например:
  • Чтобы использовать jobspec, перед числом с ключом % (%):

    Если вы выдаете команду exit с остановленными заданиями, будет выдано предупреждение, которое вы видели. Задания будут оставлены запущенными в целях безопасности. Это сделано для того, чтобы убедиться, что вы знаете, что пытаетесь убить задания, которые вы, возможно, забыли, что остановились. Во второй раз, когда вы используете команду выхода, задания завершаются и оболочка выходит. Это может вызвать проблемы для некоторых программ, которые не предназначены для этого.

    В bash кажется, что вы можете использовать команду [118206]logout[118207], которая убьет остановленные процессы и выйдет. Это может привести к нежелательным результатам.


    Также обратите внимание на то, что некоторые программы могут не выйти, когда они завершены таким образом, и ваша система может закончиться тем, что многие оставшиеся процессы будут использовать ресурсы, если вы войдете в привычку делать это.[12147]Обратите внимание на то, что вы можете создать фоновый процесс, который будет остановлен, если они требуют вмешательства пользователя:[12148]Вы можете возобновить и убить эти задания таким же образом, как вы выполняли задания, которые были остановлены прерыванием [118208]Ctrl-z[118209].[117817].

    212
    27.01.2020, 19:28

    В: Что такое «остановленное задание» или что это означает?

    Остановленное задание означает процесс, получивший сигнал остановки ( SIGSTOP / SIGTSTP ) с клавиатуры (символ приостановки Ctrl-Z ), команды (например, kill -STOP [PID] ) или другого процесса (например, ядра когда системе не хватает ресурсов) и она находится в состоянии паузы, поэтому он сообщает системе, что нужно остановить / приостановить процесс, чтобы он не выполнял / обрабатывала.

    Активные задания оболочки могут быть перечислены по: заданиям .

    В: Можно ли возобновить остановленный процесс?

    Остановленный процесс возобновит свое выполнение, только если ему будет отправлен сигнал SIGCONT . Это может быть достигнуто с помощью fg (или fg ID ), который переместит задание на передний план, сделав его текущим, bg , чтобы продолжить его в фон, или отправив сигнал SIGCONT (например, kill -CONT [PID] ).

    В: Прекращает ли первый выход остановленные задания?

    В первый раз, когда вы набираете выход / выход или нажимаете Ctrl-D , shell печатает предупреждающее сообщение о текущих активных заданиях, связанных с вашим терминалом, поэтому он не убьет вас без вашего разрешения, подтвердив действие во второй раз. Если включена опция checkjobs ( shopt -s checkjobs ), она также может отображать задания с их статусами.

    Q: Есть ли способ выйти из оболочки в первый раз? (не вводя дважды команду exit)

    Вы можете дважды нажать Ctrl + D или удерживать ее дольше, это приведет к тихому выходу из оболочки и быстрому завершению текущих остановленных / запущенных заданий shel.

    В качестве альтернативы откажитесь от них ( disown ), чтобы оставить их, или убейте вручную: kill $ (jobs -p) .

    18
    27.01.2020, 19:28

    Теги

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