при запуске процесса в фоновом режиме вы увидите два числа, напечатанных в терминале,
каждый фоновый процесс идентифицируется идентификатором задания,
помимо идентификатора процесса: первое число - это идентификатор задания, а второе - идентификатор процесса,
если вы нажмете клавишу ввода и процесс уже завершился успешно, вы получите тот же
идентификатор задания и слово «выполнено», если с того же терминала вы запускаете больше процессов в фоновом режиме, вы
можете перечислить их задания и идентификаторы процессов с помощью команды заданий. Я начинаю процессы в
фон
и я бегу на работу комментариев он показывает идентификатор задания в квадратных
скобках состояние процесса и команда, которая создала процесс, если добавить опцию минус л
он будет отображать идентификатор процесса, а также отмечают, что рабочие места, поддерживается текущая оболочка,
поэтому идентификатор задания является локальным для текущей оболочки, или вы можете иметь один и тот же идентификатор задания на разных
станциях оболочки , но идентификатор процесса поддерживается ядром системы и имеет глобальную область действия,
вы можете запустить фоновый запуск вывод процесса на передний план в любое время, запустив команду fg. fj
означает передний план. Я запускаю новую команду в фоновом режиме, а затем я переведу
ее на передний план. Спящий режим 10, а проценты и задания x идентификатор задания - один, поэтому fj
процент знак и идентификатор задания, и команда
была выведена на передний план, это было сделано быстро, потому что ожидалось всего 10 секунд,
но вы можете использовать большее число, вы можете приостановить процесс, запущенный на переднем плане, в
любое время, нажав ctrl и z Я запускаю новый процесс, на этот раз на переднем плане,
и я приостанавливаю его, нажимая ctrl и z, обратите внимание, что процесс не был завершен или отброшен
из оперативной памяти, но приостановлен или временно остановлен Я вижу процесс в списке процессов,
он там, я могу возобновить он в любое время в фоновом режиме, выполнив команду biggie, или
на переднем плане, выполнив команду fg в этом примере, я возобновляю его сначала
в фоновом режиме, я перечисляю задания, и я возобновляю его, запустив большой
процент j, один он был возобновлен в фон или я возобновляю процесс на переднем плане я
снова запускаю команду сна со случайным числом я нажимаю ctrl z
процесс был остановлен я перечисляю задания и возобновляю его на переднем плане fj процент один
теперь он был возобновлен на переднем плане, давайте продолжим и посмотрим, что произойдет с
процессом, если мы закроем выход из терминала или отключимся, если это удаленное соединение,
так что проскользните один, два, три,
и я закрываю терминал, я открываю его снова и ищем процесс,
и мы замечаем, что процесс больше не работает, он был убит, давайте сделаем то же самое,
только на этот раз мы запустим процесс в фоновом режиме,
он был запущен в фоновом режиме, я закрываю терминал,
я открываю он снова и ищет процесс,
и он ушел, у меня тот же результат, что процесс был убит,
когда вы закрываете выход из терминала или отключаете
сигнал hup, который означает зависание, отправляется процессу, и процесс будет убит,
это становится проблематично, потому что если ты хочешь по ssh, и ваше соединение обрывается, или
вы выходите из системы, сеанс завершается, и все процессы, выполняемые с терминала
, получат сигнал зависания и остановятся, есть много программ, таких как сценарии резервного копирования, выполнение которых занимает
много времени, и вы не не хотите ждать их, чтобы избежать этой проблемы, вы используете команду no hub,
которая заставит процесс игнорировать все сигналы зависания, синтаксис сейчас концентратор
включен, а команда, которую вы хотите выполнить в фоновом режиме, не повлияет при
закрытии терминала или отключении, так что теперь переходите в режим сна один, два, три и представляю,
я закрываю терминал, и я снова открываю его, и я ищу процесс,
и на этот раз процесс все еще работает, он был не завершено
внимательно посмотрите на эту команду,
вывод, отображаемый на экране, теперь является концентратором, игнорирующим ввод и добавляющим вывод, чтобы теперь перейти
, вы обычно запускаете комментарий без концентратора, а затем отключаетесь, когда вы возвращаетесь,
вы хотите искать вывод nohap перенаправляет вывод команды в файл с именем nohap. out
файл создается в текущем рабочем каталоге или, если пользователь, выполняющий команду
, не имеет необходимых прав в текущем каталоге, файл создается в
домашнем каталоге пользователя, это файл давайте посмотрим пример теперь hub ifconfig и проценты
и cat no hub dot out файл будет содержать вывод команды,
если процесс запущен без концентратора и эксперимент, который является лучшей оболочкой, завершится,
процесс будет принят init или systemd, который запускается как первый процесс при загрузке и имеет pid1,
обратите внимание, что есть несколько альтернативных программ, которые вы можете использовать, чтобы избежать
прерывания комментария, когда вы закрываете терминал или отключаетесь, некоторые из таких хорошо известных программ
являются screen и t -max взгляните на них, потому что они действительно полезны