如何使用ssh从命令行执行init脚本

时间:2015-04-23 15:41:52

标签: mysql linux bash unix ssh

ssh -t user@server1 "ls -al /root/test/"

上面提到的代码工作正常并显示测试目录文件夹的所有内容,但此代码失败

ssh -t user@server1 "/etc/init.d/mysql start"

它没有启动mysql服务器,我已登录到服务器并使用相同的命令启动mysql服务器

任何人都可以解释这种行为吗?我做错了什么有点困惑:(

2 个答案:

答案 0 :(得分:0)

做这样的事情:

ssh user@hostname "/etc/init.d/mysql start < /dev/null > /tmp/log 2>&1 &"

ssh需要使用stdin和stdout进行交互。这将允许它执行此操作并将输出重定向到有用的地方。

答案 1 :(得分:0)

我不确定这种行为的根源,可能是因为ssh分配了伪终端。但是,您可以使用sudo解决方法:

ssh -t user@server1 "sudo service mysql start"