我正在编写一个程序,使用 libssh2 库通过 SSH 登录到另一个系统。登录后,我使用以下命令执行命令:
libssh2_channel_exec(sshchannel, command)
命令执行正常。但是,一旦我关闭 channel ,正在运行的进程就会被终止。在我的例子中,命令(执行二进制可执行文件)将运行很长一段时间,我的程序无法等待它终止。我已经尝试发出以下所有命令以获得相同的结果(关闭 channel 时进程仍然被终止):
/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/