我正在编写一个使用libssh2库通过SSH登录到另一个系统的程序。登录后,我使用以下命令执行命令:

libssh2_channel_exec(sshchannel, command)

该命令执行正常。但是,一旦关闭通道,运行的进程就会被杀死。就我而言,该命令(执行二进制可执行文件)将运行很长时间,并且我的程序无法等待其终止。我试过发出以下所有命令以得到相同的结果(关闭通道后该进程仍然被杀死):
/path/myprog
nohup /path/myprog
nohup /path/myprog &
/path/myprog &; disown

此外,我已经观察到libssh和libssh2的这种行为。我缺少某些选项或命令吗?

提前致谢。

最佳答案

您可以使用unix at命令:

echo "cmd" | at now

关于c++ - Libssh2:防止后台任务被杀死,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33206289/

10-10 06:06