sudo:没有tty存在且没有指定askpass程序

时间:2012-07-31 11:36:41

标签: node.js deployment debian jake

我和jake一起尝试了launch,但是当我想部署我的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.

由于

2 个答案:

答案 0 :(得分:3)

尝试ssh -t,这会在运行命令时强制TTY分配。这对sudo来说已经足够了,至少在我的Mac上尝试将SSH命令导入我的Ubuntu boxen时。

答案 1 :(得分:0)

ssh <host> <command>尝试在没有任何交互的情况下在主机上运行该命令。在您的情况下,sudo需要一个密码,由于它不是交互式会话,因此无法获取密码。如果你真的想要这个,请配置sudo接受你而不要求密码。

编辑:同样,ssh <host> <command1> && <command2>将在本地计算机上运行command2,而不是在远程计算机上运行。