вопросы о фоновом задании удара

  1. Так как фоновое задание может все еще работать, даже если пользователь выходит из системы, какой смысл того, чтобы использовать nohup и экран?

  2. Каково различие между CTRL+Z и остановкой для приостановки фонового задания? Существует другая команда "остановка", которая останавливает фоновое задание. Это не уничтожает задание, но оно не продолжит выполняться, пока оно не будет перезапущено. Интересно, каково различие между "остановкой" и CTRL+Z? для "остановки" см. http://www.ece.osu.edu/computing/background_jobs.html#commands

  3. для создания фонового задания неинтерактивным это корректно?

command &lt<inputfile> &gt<outputfile>

Что, если я хочу добавить вывод в существующий файл, в то время как сохраняют фон задания?

1
задан 28.09.2014, 21:43

3 ответа

Фоновые задания

Нормальные фоновые задания не переживают завершение родительской оболочки:

pigpen ~: yes > /dev/null &

Это не переживет выход из системы.

Однако это будет:

pigpen ~: nohup yes &

nohup препятствует тому, чтобы процесс получил сигнал SIGHUP на выходе из системы.

Экран, с другой стороны, поддерживает иллюзию, что пользователь всегда зарегистрирован и позволяет пользователю повторно прикреплять в любое время. Это имеет преимущество способности продолжить взаимодействовать с программой, однажды повторно прикрепленной (невозможный с одним только nohup).

Ctrl+C

Ctrl+C отправляет SIGINT в процесс, который он может поймать и проигнорировать (редкий).

Я предлагаю читать страницу справочника удара; конкретно разделы по Сигналам и Управлению заданиями.

Ctrl+Z

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

Сигналы SIGTSTP могут быть пойманы программой и проигнорированы.

Сигнал SIGSTP

Сигнал SIGSTP отличается от SIGTSTP, в котором он не может быть пойман под управлением программой. Это - поведение, идентично поведению непойманного SIGTSTP.

Ресурсы

4
ответ дан 12.12.2019, 07:48
  1. Фоновые задания только продолжатся при отсоединении их (я верю), и Вы не можете быть произведены или отправить вход им позже. Экран позволит Вам соединиться с ним позже, как будто Вы никогда не оставляли его.
  2. Control+c является прерыванием клавиатуры, все, что он делает, отправляют сигнал в под управлением программу, которая будет обычно отвечать путем выхода, но он не вызванный к. Остановка его отправит другой сигнал, где приложение будет обычно останавливать то, что это делает, пока это не получает продолжать сигнал (это может быть сделано с control+z).
3
ответ дан 12.12.2019, 07:48
  1. фоновое задание умрет при выходе из оболочки, Вы запустили его в. (например, SSH), вот почему Вы используете nohup или экран. Если у Вас есть современная оболочка удара, существует отрицание-h команда. см. страницу справочника удара для большего количества информации
  2. Ctrl-C и приостанавливает, отличаются. Ctrl-C завершает процесс.
  3. Добавлять вывод в существующий файл: 1>>/path/existing_file
  4. ctrl-Z приостанавливает процесс, приносит его в фон и отдает управление Вам. Я не знаю точное значение Вашей "остановки"
  5. Добавить вывод и вставить фон: command 1>>/path/existing_file &
2
ответ дан 12.12.2019, 07:48

Теги

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