Ваша оболочка запускает эти программы как дочерние процессы. При выполнении pstree, Вы видите эти отношения. Я не знаю, можно ли управлять им.
Попытайтесь отсоединить его сначала с screen -d
. Если это не работает, можно попробовать в увеличивающемся порядке акцента,
-d|-D [pid.tty.host]
does not start screen, but detaches the elsewhere running screen session. It has the
same effect as typing "C-a d" from screen's controlling terminal. -D is the equivalent
to the power detach key. If no session can be detached, this option is ignored. In
combination with the -r/-R option more powerful effects can be achieved:
-d -r Reattach a session and if necessary detach it first.
-d -R Reattach a session and if necessary detach or even create it first.
-d -RR Reattach a session and if necessary detach or create it. Use the first session if
more than one session is available.
-D -r Reattach a session. If necessary detach and logout remotely first.
-D -R Attach here and now. In detail this means: If a session is running, then reattach.
If necessary detach and logout remotely first. If it was not running create it and
notify the user. This is the author's favorite.
-D -RR Attach here and now. Whatever that means, just do it.
Если вы не связаны grep
, вы можете использовать awk
и разделить записи на :
awk 'BEGIN {RS=":"} /^\/opt\/gnome$/'
-121--42397- Я не знаю, достаточно ли это для ответа, но
grep -w "/opt/gnome"
удовлетворит вашу потребность.
echo '/sbin:/usr/sbin:/opt/gnome:/var/opt/gnome' | grep -w "/opt/gnome" -o
/opt/gnome
echo '/opt/gnome:/sbin:/usr/sbin:/var/opt/gnome' | grep -w "/opt/gnome" -o
/opt/gnome
, но
echo '/opt/gnome:/sbin:/usr/sbin:/var/opt/gnome' | grep "/opt/gnome" -o
/opt/gnome
/opt/gnome
-121--42399- Я столкнулся с той же проблемой после того, как мое ssh-соединение неожиданно закрылось сообщением Write Failed: breaked pipe
, пока у меня был подключен сеанс экрана. Тем не менее, я не смог получить мой сеанс экрана для повторного подключения с помощью любой из команд выше. Обратите внимание, что я использую следующую версию:
~> screen --version
Screen version 4.00.03 (FAU) 23-Oct-06
Видимо, еще был экземпляр sshd
, который удерживал меня от отсоединения и повторного подключения сеанса. После идентификации PID
соответствующего экземпляра sshd
и kill
после его повторного подключения с помощью экрана -r
.
Только для информации: Вы определенно найдете несколько sshd
демонов, один будет соответствовать вашему текущему имени входа и другой, принадлежащий устаревшему экранному
сеансу (действительно, может быть несколько других sshd
, работающих, принадлежащих нескольким другим экранным
сеансам).
Каталоги являются файлами, поскольку в системах Linux используется универсальная модель ввода-вывода . В модели все в системе является файлом, и к нему можно получить доступ с помощью одних и тех же системных вызовов и различных команд.
Они имеют особый тип, потому что их i-узлы имеют метку для типа файла и имеют специальную структуру, состоящую в том, чтобы быть таблицей имен файлов и ссылок на другие i-узлы. Эти пары имя-ссылка, также известные как «hardlinks», в i-узле каталога перечисляют файлы «внутри» каталога.
Каталоги предназначены только для организации файлов. Когда файл «перемещается» из каталога в другой, сам файл не перемещается на диск. Просто запись в одном каталоге i-node удаляется и записывается в другой каталог i-node.
-121--18626-Поместите в файл следующее:
command1()
{
if [ "$BASH_COMMAND" != command2 ]
then
command_flag=1
fi
return 0
}
trap command1 debug
command2()
{
if [ "$command_flag" ]
then
echo ""
fi
command_flag=
}
PROMPT_COMMAND=command2
Рекомендуется изменить имена command1
, command2
и команда _ флаг
в значения, которые вы вряд ли введете. Затем источник
этого файла.
(Или просто поместите вышеуказанное в файл .bashrc
.)
Команда trap command1 debug
вызывает вызов функции command1
при любом вводе команды. Функция command1
устанавливает флаг command _ flag
, указывающий на наличие команды.
(Функция command1
не вызывается при нажатии Enter .)
PROMPT _ COMMAND = command2
вызывает вызов функции command2
каждый раз, когда оболочка собирается выдать запрос PS1
.
Функция command2
проверяет флаг _ команды
для проверки ввода команды или просто Enter .
При вводе команды будет установлен флаг _ команды
и command2
запишет пустую строку на экран.
(Если вы выясните, как создать вертикальное пространство, которое является дробью линии,
измените команду echo
.)
Если нажать Enter , команда _ флаг
не будет установлен.
Затем снимите флажок, чтобы следующая подсказка была выполнена правильно.
Обратите внимание, что вызывается функция command1
когда оболочка запускает функцию command2
;
поэтому command1
необходимо сделать особым случаем
(он не считается командой).
Иногда несколько экранов работают в фоновом режиме.
Они могут быть возобновлены:
screen -r [pid]
Чтобы получить экран, сначала запустите экран -R
, затем вы увидите все работающие PID экрана, после этого возобновите экран -r [pid]
.
screen -r '1234.somescreensession'
Есть экран на:
1234.somescreensession (Прикрепленный)
Нет экрана для возобновления, совпадающего с 1234.somescreensession.
Вот простой способ вернуть этот экранный сеанс.
screen -D -r '1234.somescreensession'
-d -r
опции вместе вызовут присоединение та сессия. – Tim Kennedy 09.01.2012, 17:00screen -x
таким образом, я могу присоединить от нескольких местоположений сразу. Конечно, если Вы случайно закрываете окно, оно походит-d -r
лучше только для хранения вещей опрятными. – mpontillo 10.01.2012, 03:29