Libssh2:防止后台任务被杀死

Libssh2: prevent background task from being killed

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

libssh2_channel_exec(sshchannel, command)

命令执行正常。但是,一旦我关闭频道,进程 运行ning 就会被终止。在我的例子中,命令(执行二进制可执行文件)将 运行 持续很长一段时间,我的程序无法等待它终止。我试过发出以下命令都得到相同的结果(关闭通道后进程仍然被终止):

/path/myprog
nohup /path/myprog
nohup /path/myprog &
/path/myprog &; disown

此外,我已经观察到 libsshlibssh2 的这种行为。是否缺少某些选项或命令?

提前致谢。

你可以使用 unix at 命令:

echo "cmd" | at now