Я пытаюсь создать скрипт / команду, которая перезапустит нашу службу Asterisk / Elastix на нашей АТС. Сценарий в основном использует простую команду с открытым ключом автоматического входа, которая запускается из Ubuntu. 14.04LTS:
Сценарий команды:
ssh user@iphost 'service asterisk restart'
Но после того, как команда завершена и служба перезапущена, ssh остается и только после ctrl kbd> c kbd> выходит из строя.
Мой вопрос: как я могу завершить сеанс после завершения команды?
Попытайтесь перенаправить stdin, stdout, и stderr к/dev/null. Для объяснения см. https://serverfault.com/questions/36419/using-ssh-to-remotely-start-a-process.
Попытайтесь использовать "здесь документ"
ssh user@iphos << endexe
service asterisk restart
exit
endexe
, Который должен работать.
Вы могли просто фон это, как только это работает:
ssh user@iphost 'service asterisk restart &'
у меня есть подобная проблема с xinit
- базирующийся новомодный сервис, что пожиратели ресурсов этап и потребности, вручную выходящие (не вредит Новомодному заданию), но да, wang &
на конце и это должно вызвать его в фон.
, Если это причиняет Вам боль, существует много других опций как:
ssh user@iphost 'setsid service asterisk restart'
Можно использовать одну из следующих команд вместо этого:
Перезапуски сервис и затем выходит:
ssh user@iphost 'service asterisk restart; exit'
Перезапуски сервис и затем выходит на успехе:
ssh root@iphost 'service asterisk restart && exit'
использование опции -t
(терминал) в команде ssh решает проблему также (лучше, чем перенаправление stdout, если вывод команды является чем-то полезным, которое мы хотим видеть):
ssh -t remoteip command