В чем разница между ^S и ^Z внутри терминала?
При использовании эмулятора терминала можно остановить текущую запущенную программу нажатием CTRL-Z или CTRL-S. В чем разница между этими управляющими персонажами?
2 ответа
Это разница между действиями "стоп" и "приостановка" терминала.
Остановка вывода с помощью Ctrl-S не останавливает процесс; скорее он просто останавливает вывод на терминал (возобновите с помощью Ctrl-Q / "start").
Приостановка процесса с помощью Ctrl-Z фактически останавливает его выполнение и переводит процесс в другое состояние, видимое из ps (состояние "T"). Возобновите с "fg" или "bg", чтобы возобновить процесс на переднем или заднем плане, соответственно.
CTRL-Z отправляет SIGSTOP
сигнал, который заставляет программу остановиться.
С
fg
или же
bg
ты можешь отправить SIGCONT
и запустить его в передней или на заднем плане.
CTRL-S просто прекращает вывод материала на терминал. (XOFF
) Вы можете включить его снова с помощью CTRL-Q.(XON
)