Когда я запускаю программу в терминале, я вижу вывод. Я могу Ctrl+C мой выход из него для использования терминала снова, но являюсь там способом получить вывод его в терминал снова?
Я знаю, что могу направить вывод в файл и считать это, но было бы хорошо иметь его назад на экране снова для тестирования.
Ctrl+C удара отправляет сигнал SIGINT в процесс, работающий на переднем плане терминала, завершая его, если процесс сознательно не игнорирует сигналы SIGINT;
Таким образом путем удара Ctrl+C Вы говорите процессу, работающему на переднем плане терминала завершаться.
Для выполнения процесса, предотвращающего его для занятия терминала, можно запустить его в фон путем добавления &
в конце команды:
user@user-X550CL:~/tmp$ bash script.sh &
[1] 24961
user@user-X550CL:~/tmp$
При запуске процесса на переднем плане уже можно все еще остановить его путем удара Ctrl+Z:
user@user-X550CL:~/tmp$ bash script.sh
^Z
[1]+ Stopped bash script.sh
user@user-X550CL:~/tmp$
И отправьте его в фон и возобновите его выполнение при помощи bg
встроенный:
user@user-X550CL:~/tmp$ bg
[1]+ bash script.sh &
user@user-X550CL:~/tmp$
Можно отправить несколько процессов в фон:
user@user-X550CL:~/tmp$ bash script.sh &
[1] 24961
user@user-X550CL:~/tmp$ bash script.sh &
[2] 24984
user@user-X550CL:~/tmp$ bash script.sh &
[3] 24989
user@user-X550CL:~/tmp$
Можно перечислить все процессы в фон при помощи jobs
встроенный:
user@user-X550CL:~/tmp$ jobs
[1] Running bash script.sh &
[2]- Running bash script.sh &
[3]+ Running bash script.sh &
user@user-X550CL:~/tmp$
Для перемещения одного процесса от фона до переднего плана можно использовать fg
встроенная передача числа задания как аргумент:
user@user-X550CL:~/tmp$ fg %1
bash script.sh
Выполнение fg
не указывая число задания, поскольку аргумент будет иметь эффект перемещения в передний план последний фоновый процесс:
user@user-X550CL:~/tmp$ fg
bash script.sh
Запустите свое приложение или команду через
command &
и не используйте Ctrl-C. Вы будете видеть вывод, пока Вы не закроете терминал.
Возвратите команду в передний план с
fg
Пример
Создайте простой сценарий, например.
#!/bin/bash
while true; do
echo foo
sleep 5
done
Запустите сценарий, программа произведет слово foo
. Через какое-то время я вошел echo bar
, сопровождаемый fg
и Ctrl-C для завершения сценария.
$ ./foo & [1] 29544 $ foo foo foo echo bar bar $ foo foo fg [1] + 29544 running ./foo foo ^C