【发布时间】:2018-01-05 18:46:29
【问题描述】:
我正在尝试使用 npm 模块“simple-ssh”触发一个 bash 脚本,该脚本在我的远程服务器上运行数小时。但是,我不想等到 bash 脚本执行完成。我想继续执行我的下一个链并结束 ssh 会话。由于我的 bash 脚本在后台运行,因此即使我结束 ssh 会话,我也希望它能够正常完成。
问题是我无法实现这一点,因为在 bash 脚本完成之前,控件永远不会脱离链中的第一个块。请提出实现此目标的方法。
server.js
const sh_script = 'sh /ws/jobs/test.sh'
var SSH = require('simple-ssh');
var ssh = new SSH({
host: 'HOST IP',
user: 'username',
pass: 'password'
});
ssh
.exec(sh_script, {
out: function(stdout) {
console.log(stdout);
},
})
.exec('echo "exiting shell"',{
out: function(){
ssh.end();
console.log("exiting");
}
})
.start();
test.sh(此 shell 脚本需要数小时才能完成)
function start_ui_validation {
......
}
echo "Before starting subshell"
(
start_ui_validation "params"
) &
echo "Finished"
【问题讨论】:
-
这与 Python 无关,对吗?
-
抱歉标记错误。我尝试了一个用于后台执行的 Python 子进程。忘记在此处添加该代码。
标签: python node.js bash express ssh