【问题标题】:Can't run tmate as daemon programatically无法以编程方式将tomcat作为守护进程运行
【发布时间】:2019-02-22 15:08:18
【问题描述】:

我有一个以 sudo 运行的应用程序,它是使用 pm2 启动的。它必须以 sudo 运行。

在它里面我在启动时运行这个函数:

const util = require('util');
const exec = util.promisify(require('child_process').exec);
function getTmate(app) {
  exec('rm /tmp/tmate.sock display -p \'#{tmate_ssh}\'').catch(err => console.log(err));
  exec('tmate -S /tmp/tmate.sock display -p \'#{tmate_ssh}\'').catch(err => console.log(err)); //exception here
  setTimeout(async function () {
    let {stdout} = await exec('tmate -S /tmp/tmate.sock display -p \'#{tmate_ssh}\'').catch(err => console.log(err));
    if (stdout.length > 8) {
      console.log(stdout);
    }
    else {
      getTmate();
    }
  }, 15000);
}

但我永远无法正确启动 tmate。在第二个exec 我收到以下错误:

连接服务器失败

at ChildProcess.exithandler (child_process.js:297:12)
at ChildProcess.emit (events.js:197:13)
at maybeClose (internal/child_process.js:984:16)
at Socket.stream.socket.on (internal/child_process.js:401:11)
at Socket.emit (events.js:197:13)
at Pipe._handle.close (net.js:611:12)   killed: false,   code: 1,   signal: null,   cmd:    "tmate -S /tmp/tmate.sock > display -p '#{tmate_ssh}'",   stdout: '',   stderr: 'failed to connect  to server\n' }

这个想法是在启动时运行 tmate,并在 ssh 可用时立即将其发送到我的云服务器。欢迎任何其他方法。还尝试在/etc/rc.local 上运行tmate -S /tmp/tmate.sock new-session -d,但稍后我无法检索ssh 字符串(同样的错误)

如果我在终端中运行这些命令,tmate 可以正常工作:

tmate -S /tmp/tmate.sock new-session -d

tmate -S /tmp/tmate.sock display -p '#{tmate_ssh}'

【问题讨论】:

    标签: node.js


    【解决方案1】:

    采取了另一种有效的方法:

    将 /etc/rc.local 更改为以下内容:

    su nvidia -c 'tmate -S /tmp/tmate.sock new-session -d'
    su nvidia -c 'tmate -S /tmp/tmate.sock wait tmate-ready'
    su nvidia -c "tmate -S /tmp/tmate.sock display -p '#{tmate_ssh}'  > /tmp/tmateSSH"
    exit 0
    

    后来我只是在 /tmp/tmateSSH 可用时检索它。

    【讨论】:

      猜你喜欢
      • 2015-06-02
      • 2023-03-02
      • 2015-08-25
      • 1970-01-01
      • 2012-12-03
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      相关资源
      最近更新 更多