дочерний тайм-аут в вызове fork execlp - PullRequest
2 голосов
/ 22 марта 2011

У меня есть программа, где в дочернем SSH на сервер и выполняет команду и возвращает обратно.родитель обрабатывает ребенка по сигналу (SIGCHLD, SIG_IGN).Есть ли способ, по которому дочерний процесс истечет, если ssh-сервер не отвечает и ssh из командной строки и ждет другого сервера навсегда?

1 Ответ

0 голосов
/ 22 марта 2011

С ssh_config(5):

 ConnectTimeout
         Specifies the timeout (in seconds) used when
         connecting to the SSH server, instead of using the
         default system TCP timeout.  This value is used only
         when the target is down or really unreachable, not
         when it refuses the connection.

Вы можете видеть, что он работает достаточно хорошо, чтобы сократить задержку:

$ time ssh -oConnectTimeout=1 ehrlichman
ssh: connect to host ehrlichman port 22: Connection timed out

real    0m1.038s
user    0m0.000s
sys 0m0.000s
$ 

Но это может не сработать для увеличения задержки навсегда; разрешение TCP-квитирования дольше, чем настроено ядром для ожидания, кажется маловероятным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...