Нажатие клавиши и сигнал — это два разных способа связи с программой. Если есть сигнал, который эквивалентен нажатию клавиши для данной программы, это потому, что автор программы разработал его таким образом.
Есть несколько клавиш, которые сам терминал преобразует в сигнал, например Ctrl + C в SIGINT. Программа может изменить настройки терминала, чтобы сама фиксировать эти нажатия клавиш, а не позволять терминалу преобразовывать их в сигнал.Тот же терминальный механизм позволяет переводить клавишу (обычно Ctrl + D)в конец ввода (только при ее нажатии в начале строки ). Это не сигнал :, это означает, что программа получает индикацию конца -из -файла, когда она пытается прочитать ввод с терминала.
Когда терминал исчезает, ядро отправляет сигнал SIGHUP программе переднего плана, работающей в терминале, если таковая имеется (и если это оболочка, оболочка повторно -отправит сигнал своему заданию переднего плана ). ]. HUP происходит от «(модем )повесить -трубку» и в современном мире применяется в таких случаях, как закрытие окна терминала в графическом интерфейсе. Многие программы ловят этот сигнал и благополучно завершают работу, поэтому, если вам удобнее послать сигнал, чем послать ввод, вы должны попробовать, работает ли это для вашей программы.
Если вам необходимо отправить ввод, проще всего запустить программу в Экране и использовать screen -X
для отправки ввода в сеанс экрана(пример).
Вы можете попробовать powertop
и iotop
, чтобы проверить, что потребляет больше всего энергии и что использует больше всего дискового ввода-вывода соответственно. Вместе с top
они должны быть достойным индикатором того, что на самом деле происходит под капотом.