Как я могу завершить сеанс bash после ssh-отсоединения, чтобы сохранить историю команд? - PullRequest
1 голос
/ 26 июня 2019

Когда я заново подключаюсь к серверу после ssh-разрыва из-за проблем с подключением, я бы хотел сказать моему старому сеансу bash прекратить и сохранить его историю команд.

Я полагаю, что был бы способ «записи» в tty входной буфер потерянной оболочки или сигнал для отправки bash.

1 Ответ

1 голос
/ 26 июня 2019

После работы с ttyecho, который не работал для меня, я понял из справочной страницы, что чистый выход может быть легко достигнут простым сигналом SIGHUP, даже root не требуется ( если тот же пользователь):

$ kill -HUP 11597

приведет к тому, что "Hangup" будет напечатано в "потерянной" оболочке (в случае, если вы это проверите, и у вас есть к ней доступ), а история из потерянной оболочки будет сохранена.

Дополнительно:

$ history -a; history -r

будет затем (1) следить за тем, чтобы не перезаписывать историю, только что написанную нашей новой оболочкой, и (2) немедленно делать историю из старой оболочки доступной для новой оболочки.

...