Ubuntu SSH不释放终端
当我从macbook向ubuntu服务器运行以下命令时,终端不会被释放。它就在那里,直到我控制命令Ubuntu SSH不释放终端,ubuntu,ssh,capistrano,Ubuntu,Ssh,Capistrano,当我从macbook向ubuntu服务器运行以下命令时,终端不会被释放。它就在那里,直到我控制命令 ssh user@my-server 'sudo /etc/init.d/nginx start' 当我登录并运行命令时,一切正常 ssh user@my-server sudo /etc/init.d/nginx start 下面是突出显示问题的输出 ~ $ ssh me@somewhere.com me@somewhere.com's password: Last login: Mon S
ssh user@my-server 'sudo /etc/init.d/nginx start'
当我登录并运行命令时,一切正常
ssh user@my-server
sudo /etc/init.d/nginx start
下面是突出显示问题的输出
~ $ ssh me@somewhere.com
me@somewhere.com's password:
Last login: Mon Sep 6 15:18:18 2010 from
me@somewhere:~$ sudo /etc/init.d/nginx restart
[sudo] password for me:
Restarting nginx daemon: nginx.
me@somewhere:~$ exit
logout
Connection to somewhere.com closed.
~ $ ssh me@somewhere.com 'sudo /etc/init.d/nginx restart'
me@somewhere.com's password:
[sudo] password for me:
Restarting nginx daemon: nginx.
在最后一个命令执行之后,它只是保持在那里,什么也不做。提前感谢您提供的任何建议
me@somewhere:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.4 LTS"
me@somewhere:~$
更新:
我认为init脚本可能也有一个bug。此后,我为niginx使用了3个不同版本的init脚本,所有3个版本都有相同的问题。我目前正在运行这个脚本,它似乎是我找到的3个脚本中的一个
我只是尝试了评论中建议的命令,问题完全相同。还有其他想法吗?好的,我通过强制执行伪tty分配来解决这个问题。只需将-t选项添加到SSH命令中。这解决了问题,仍然允许您查看输出。所以
sshuser@my-服务器“sudo/etc/init.d/nginx start”
变成
ssh-tuser@my-服务器“sudo/etc/init.d/nginx start”
短版本:
让我们分两步进行尝试:
我想远程启动的tomcat也有同样的问题。在脚本中添加stdout重定向“1>/dev/null”完成了任务。似乎是nginx启动脚本中的一个bug。当sshing然后发出sh-c“sudo/etc/init.d/nginx restart”时,它能工作吗?