Да, вы получаете два совпадения, потому что и arun:1.0
, и arun-vinoth:1.3
содержат слово arun
как отдельное слово, оканчивающееся перед не -символами слова :
и -
в двух результатах(_
считается словесным символом, поэтому arun_kumar:1.2
равно , а не возвращается с вашей командой ).
В этом случае лучше использовать ^arun:
в качестве шаблона для поиска, то есть любую строку, начинающуюся со строки arun:
.
Вы можете перечислить сеансы tmux при повторном подключении к удаленному серверу:
tmux ls
0: 4 windows (created Tue Oct 15 07:55:07 2019) [255x62]
1: 2 windows (created Tue Oct 15 07:55:07 2019) [255x62]
Затем вы можете повторно подключиться к целевому сеансу:
tmux attach-session -t 1
Это будет связано со вторым экземпляром tmux, указанным выше.
Если у вас запущен только один сеанс tmux, вы можете использовать сокращение:
tmux a
для повторного подключения первого сеанса.
Если вы склонны к зависаниям или хотите выйти из сеанса ssh
-, вы можете использовать nohup
. Это позволяет вам отсоединить процесс от сеанса ssh
-, запустить его в фоновом режиме и сохранить вывод в файл.
nohup COMMAND &
По умолчанию выводится на $HOME/nohup.out
, в качестве альтернативы возможно перенаправление
nohup COMMAND > mylogs.log &
Когда вы запускаете nohup, вам будет показано PID
процесса, например.:
$ nohup bash -c "while ((1)) ; do echo 1 ; sleep 1 ; done" > echo.log &
[1] 21816
Обратите внимание на PID и проверьте статус вашего процесса, например, через.ps <PID>
$ps 21816
PID TTY STAT TIME COMMAND
21846 pts/6 S 0:00 bash -c while ((1)) ; do echo 1 ; sleep 1 ; done
Отсутствие вывода с заданным PID
означает, что процесс больше не активен (отменено, прервано, остановлено, завершено... что угодно ).
Допустим, для демонстрации вы хотите запустить это на удаленном хосте:
for i in $(seq 60) ; do
echo "$i seconds of 60"
sleep 1
done
.... и хотите, чтобы он продолжал работать, когда ваше ssh-соединение обрывается.
Самый самый простой способ сделать это с помощью tmux:
tmux new-session -d
tmux new-window bash -c 'for i in $(seq 60) ; do echo "$i seconds of 60" ; sleep 1 ;done'
После этого вы вернетесь к командной строке, как будто ничего не произошло. Но скрипт будет работать в tmux в памяти. Если вы выйдете из оболочки (или ваше ssh-соединение прервется ), оно продолжит работу.
Чтобы подключиться к сеансу tmux, чтобы увидеть программу, работающую в вашем терминале,запустите эту команду:
tmux attach-session
Чтобы выйти из сеанса tmux, оставив его работающим в фоновом режиме, нажмите ctrl-b
, а затем d
.
Чтобы завершить сеанс tmux, просто подключитесь к нему, завершите свою программу, если она все еще работает exit
в оболочке обычным способом. Или из-за пределов сеанса tmux:
tmux kill-session