Экран GNU заблокирован, как разблокировать?

Представьте, что вы пытаетесь запустить сложный сценарий с помощью nohup. Вы можете определить, пытается ли он прочитать stdin, перенаправив stdin на дескриптор файла, из которого нельзя читать. Посмотрите на эти два примера: сначала 0:

rm nohup.out
nohup sh -c 'head -1' 0</dev/null
echo $?
cat nohup.out 

Файл nohup.out пуст, а код возврата ($?) от скрипта равен 0, то есть нормально, так как скрипт только что прочитал конец файла. Теперь попробуйте выполнить тот же сценарий с 0>/dev/null т.е. 0 открыт только для вывода:

rm nohup.out
nohup sh -c 'head -1' 0>/dev/null
echo $?
cat nohup.out 

Это дает сообщение об ошибке в nohup.out

head: error reading 'standard input': Bad file descriptor

и код выхода 1, fail. Предположительно, это более полезно для вас. Вы также можете получить тот же эффект, закрыв stdin командой 0<&-:

rm nohup.out
nohup sh -c 'head -1' 0<&-
echo $?
cat nohup.out 
4
11.02.2016, 12:24
1 ответ

Вы можете подключиться к сеансу с «другого терминала» (включая другое ssh-соединение). Это позволяет восстановить все, что было в процессе. Вы всегда можете завершить сеанс экрана сразу после его запуска, используя sudo , чтобы убить родительский процесс сеанса экрана (названный " экран").

Эта функция полезна только в том случае, если она изначально настроена должным образом (обычно это не так).

Дополнительная литература:

8
27.01.2020, 20:49

Теги

Похожие вопросы