В чем разница между ^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)

Другие вопросы по тегам