Мне было любопытно и смущено, что именно такое поведение CTRl + Z.
Я знаю, если процесс выполняется на переднем плане, и мы нажимаем Ctrl + Z, он переходит в фоновый режим.
Но что именно происходит.
Продолжает ли он выполнять свою работу, или он приостанавливается и останавливается в том месте, где он был.
И если это остановится в этот момент, и в чем смысл фоновой работы.
Ответы:
«Фоновая работа» - это просто та, которая не взаимодействует с пользователем - она не контролирует tty и просто делает свое дело (обычно молча). Задание на переднем плане является обратным, оно контролирует tty для взаимодействия с пользователем.
Control-Z приостанавливает самый последний процесс переднего плана (последний процесс, который взаимодействует с tty) (если только этот процесс не принимает меры для игнорирования приостановки, как это обычно делают оболочки). Как правило, это возвращает вас к вашей оболочке, из которой вы обычно можете ввести команду,
bg
чтобы переместить только что приостановленный процесс в фоновый режим (чтобы он продолжал выполняться) илиfg
вернуть его на передний план.источник
fg
сначала определив, какое задание, выполнив,jobs
затем скажите, если его% 1, то выпускfb %1
и процесс будут возобновленыfg %1
нетfb %1
Нажатие Ctrl + Z отправляет
TSTP
сигнал вашему процессу. Это останавливает выполнение (ядро не будет планировать больше процессорного времени для процесса), и процесс ожидает CONT для продолжения обработки.Вы можете эмулировать / реплицировать это через
kill -TSTP
иkill -CONT
(посколькуkill
отправит назначенный сигнал вашему процессу, несмотря на название!)Оболочка имеет функциональность для «фонового» процесса, но это отношения между оболочкой и процессом. Сам процесс на самом деле не имеет понятия «фон» или «передний план».
Смотрите здесь для получения дополнительной информации.
источник
^Z
отправляет SIGTSTP, а не SIGSTOPРассмотрим эту команду, которая занимает ок. 4,5 секунды на моем ноутбуке:
Когда вы нажмете Ctrl+ Z, расчет будет приостановлен. У вас есть возможность возобновить расчет
fg
в фоновом режиме, или возобновить его в фоновом режиме, используяbg
. Последнее более или менее эквивалентно выполнению:источник
Процесс приостанавливается и останавливается при нажатии Ctrl + Z. С помощью fg вы можете переместить приостановленную работу на передний план, с помощью bg вы можете запустить ее в фоновом режиме.
Смотрите http://linuxreviews.org/beginner/jobs/ для получения дополнительной информации.
источник