如何在nodejs中运行tmux命令

如何在nodejs中运行tmux命令

有没有办法像这样运行 tmux cmdtmux 杀死服务器,tmuxinator附加通过nodejs等。我在网上搜索过,但找不到任何有用的东西可以帮助我消除错误。

我正在尝试shelljsnpm 模块但它不起作用。

我收到此错误:-

Pseudo-terminal will not be allocated because stdin is not a terminal.
Permission denied (publickey).

当使用这些代码行与 nodejs 运行 tmux cmd 时:-

shell.exec('ssh -t myremotemachineaddress tmux kill-server');
shell.exec('ssh -t myremotemachineaddress tmuxinator start rails_servers');

这里,shell是一个变量,用于shelljsnpm 模块。

答案1

首先,您似乎没有在远程主机上设置公钥身份验证。否则,您将无法在没有密码的情况下登录。您必须在计算机上生成密钥对,并将公钥添加到~/.ssh/authorized_keys用户目录中的文件中。

要生成密钥对,请使用ssh_keygen(当要求输入密码时按 Enter 两次将创建一个没有密码的密钥)。

ssh-keygen -t rsa -b 8192 -f ~/.ssh/id_yourmachine
ssh-add ~/.ssh/id_yourmachine

~/.ssh/id_yourmachine.pub将是公钥,您应该将其添加到~/.ssh/authorized_keys远程主机上的文件中。然后您可以使用 登录ssh user@yourmachine

其次,我不确定您为什么使用该-t选项,但它可能不需要,并且似乎导致了第一个警告。

除此之外,node还有一个内置的方式执行命令/启动进程。

相关内容