Как 'ssh exit' завершает сеанс?

Вы ищете директиву \K, чтобы забыть о том, что вы только что сопоставили.

grep -oP 'is the.*?blah:\K\d+'

Тогдаsort -u

0
26.09.2019, 17:28
1 ответ

exit, выполняемый удаленной оболочкой, завершит эту оболочку. В случае, когда выполняется true, удаленная оболочка завершит работу из-за отсутствия дальнейших команд для выполнения, но exitзавершит ее, даже если после нее (будут дополнительные команды, как в любом скрипте ).

В простом случае, когда сеанс SSH предназначен только для выполнения набора команд (, где он не устанавливает туннели или не использует совместное использование соединения ), сеанс завершается, когда удаленный оболочка завершается, независимо от того, как удаленная оболочка завершается (либо по exit, либо по какой-то ошибке, либо по получении сигнала HUP, либо просто по достижению конца скрипта ).

Обратите внимание, что в руководстве сказано: «[...] и все соединения X11 и TCP закрыты». Это означает, что соединение может не прерваться только потому, что удаленная оболочка завершила работу. Это будет иметь место, когда вы, например, используете совместное использование соединения с ssh -Mиssh -S(или настройку ControlMasterв ~/.ssh/config; см. man sshи man ssh_config). Я предполагаю, что туннели SSH также будут поддерживать сеанс SSH, пока они не будут явно закрыты.

Чтобы действительно разорвать соединение SSH, вы можете отправить управляющую командуexitс помощью ssh -O exit user@host. Это приведет к завершению всех общих сеансов SSH на user@host.

1
28.01.2020, 02:39

Теги

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