我有一个C ++应用程序(在Linux下),该应用程序打开ssh反向隧道。这很好。但是我在关闭连接时遇到了一些麻烦。 当我从命令行启动应用程序时,close命令将像应该的那样工作,但是当我从后台的cron作业中启动应用程序时,连接不会关闭。
这是我的代码:
打开连接:
std::string cmd = "ssh -o StrictHostKeyChecking=no -f -N -T -M -R 8003:192.168.0.1:8001 -R 8007:192.168.0.1:8005 -R 22222:localhost:22 sshService";
system(cmd.c_str());
要关闭连接,我使用:
std::string cmd = "ssh -T -O exit sshService";
system(cmd.c_str());
我的主机配置是:
Host sshService
HostName www.addressOfServer.com
User sshUser
ControlPersist 4h
ControlPath ~/.ssh/sshService.ctl
IdentityFile /home/user/sshUser
有什么想法,我做错了什么?或一些想法,我如何找出问题所在?
答案 0 :(得分:0)
发现了问题。看来我必须使用tmpfs路径作为控制路径。 我将配置更改为:
/* These have been removed
const os = require('os');
const fs = require('fs');
const path = require('path');
*/
import * as SystemUtils from `./system';
...
SystemUtils.doAThing(app);
...
SystemUtils.doAnotherThing(app);