&引用;“新产品管理启动”;在bash中,脚本无法远程工作

&引用;“新产品管理启动”;在bash中,脚本无法远程工作,bash,npm,console,debian,npm-start,Bash,Npm,Console,Debian,Npm Start,我有一个包含“npm start”的bash脚本,我从电报API远程运行这个bash,通常不起作用。但如果我只是在debian stretch的控制台中登录到root用户,那个API就可以工作了! 那么我的问题在哪里? 谢谢 此代码在bash中: #!/bin/bash screen -dm sudo npm start --prefix /root/gbot/ 我以前没有使用电报API。但是,我认为您正面临根权限的问题 从远程API运行可能不会使用root用户(这似乎会导致漏洞问题)。然后,

我有一个包含“npm start”的bash脚本,我从电报API远程运行这个bash,通常不起作用。但如果我只是在debian stretch的控制台中登录到root用户,那个API就可以工作了! 那么我的问题在哪里? 谢谢

此代码在bash中:

#!/bin/bash
screen -dm sudo npm start --prefix /root/gbot/

我以前没有使用电报API。但是,我认为您正面临根权限的问题

从远程API运行可能不会使用
root
用户(这似乎会导致漏洞问题)。然后,如果您执行需要
sudo
的命令,它将要求您输入root密码以临时获得root权限。但是,如果您使用的是远程API,您可能无法输入此根密码,这表明您无法获得根权限,则您无权运行与
sudo
相关的任何操作

要解决此问题,您可以使用命令
expect
将root密码自动发送到询问密码的过程。但是,这可能会导致漏洞


更好的解决方案可能是更改此npm回购协议的权限(
chmod
),或者将其移动到更安全且不需要太高权限的地方(也可以使用
chmod
)。

我非常感谢您帮助解决此问题。我有很多类似于“sudo”的bash可以远程工作,但这是我的第一个“npm”,我认为问题出在npm引用或安装地址上。无法识别npm。@NimaZandKarimi您可以尝试输出错误流以查看其“不工作”的原因吗?我使用此方法,但没有得到任何结果:screen-dm sudo npm start--prefix/root/gbot/2>bot6.log 1>bot7.log 3>bot8.log此错误我得到=sudo:npm:command not found