Почему я получаю сообщение об ошибке отказа в разрешении при выходе из сеанса SSH?

В bash вы не можете дождаться замены процесса. In:

cmd1 > >(cmd2)

вся команда завершается, как только cmd1 завершается, независимо от статуса cmd2 .

Вы должны реализовать механизм, сигнализирующий родительскому процессу о завершении cmd2 . Простой способ с использованием FIFO:

#!/usr/bin/env bash

trap 'rm wait.fifo' EXIT
mkfifo wait.fifo

echo 'hello' | tee \
  >( sleep 3; cat /dev/stdin; : >wait.fifo ) \
  >( sleep 2; cat /dev/stdin; : >wait.fifo ) \
  >( sleep 1; cat /dev/stdin; : >wait.fifo )

for (( i=0;i<3;i++ )); do read <wait.fifo; done
5
13.04.2017, 15:37
1 ответ

Попробуйте screen ssh $USER@$HOSTNAMEна сервере.

Решение kinit && aklogу меня не сработало, но я нашел это решение "sshception". На экране я подключаюсь к той же машине по ssh и запускаю свои программы в этом сеансе ssh. Даже если экран теряет разрешение, сеанс ssh внутри остается открытым и аутентифицированным.

0
27.01.2020, 20:37

Теги

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