1

我尝试了jakelaunch一点,但是当我想部署我的 node.js 应用程序时,我在此过程中得到了这个:

$ ssh mydomain.com sudo stop site.WebApp-production && sudo start site.WebApp-production
sudo: no tty present and no askpass program specified

✘  Failed to restart site

jake aborted.
Error
  at fail (/usr/local/lib/node_modules/jake/lib/api.js:235:13)
  at /Users/udo/Projects/WebApp/Jakefile.coffee:31:16
  at ChildProcess.exports.remote (/Users/udo/Projects/WebApp/node_modules/launch/lib/action.js:39:5)
  at ChildProcess.EventEmitter.emit (events.js:91:17)
  at Process._handle.onexit (child_process.js:674:10)

你知道如何摆脱这个吗?我在远程机器上使用 Debian 6。

谢谢

4

2 回答 2

3

Try ssh -t,它在运行命令时强制分配 TTY。sudo至少在我的 Mac 上尝试 SSH 命令进入我的 Ubuntu boxen 时,这已经足够了。

于 2012-10-17T22:15:58.993 回答
0

ssh <host> <command>尝试在没有任何交互的情况下在主机上运行命令。在您的情况下,sudo需要一个密码,因为它不是交互式会话,所以它无法获得。如果您真的想要这个,请配置 sudo 以在不询问密码的情况下接受您。

编辑:另外,ssh <host> <command1> && <command2>将在本地机器上运行 command2,而不是在远程机器上。

于 2012-07-31T12:01:12.593 回答