c++ - Libssh2:防止后台任务被杀死

标签 c++ c linux libssh2 libssh

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

libssh2_channel_exec(sshchannel, command)

命令执行正常。但是,一旦我关闭 channel ,正在运行的进程就会被终止。在我的例子中,命令(执行二进制可执行文件)将运行很长一段时间,我的程序无法等待它终止。我已经尝试发出以下所有命令以获得相同的结果(关闭 channel 时进程仍然被终止):

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

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

提前致谢。

最佳答案

您可以使用 unix at 命令:

echo "cmd" | at now

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

相关文章:

python - 如何通过 swig 在 Python3 中正确创建 C++ vector ?

c# - 如何将包含其他第三方 C 库的 C++ project_A 链接到另一个 project_B

c - 关于 c 中递归的快速问题

c - 使用消息结构的 UDP 聊天服务器

Java 线程在 Ubuntu/Jetty 上滞后/长时间 hibernate

c++ - 运行时错误 (SIGSEGV)

c++ - 转发声明一个外部结构

c - 我执行的每个操作,Visual Studio 都会打开 'save file as' 对话框

linux - bash - 如何继续启动程序直到它以 0 退出

linux - 运行 bash 并查看脚本中 echo 的打印结果