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
此外,我已经观察到 libssh 和 libssh2 的这种行为。是否缺少某些选项或命令?
提前致谢。
你可以使用 unix at
命令:
echo "cmd" | at now
我正在编写一个程序,使用 libssh2 库通过 SSH 登录到另一个系统。登录后,我使用以下命令执行命令:
libssh2_channel_exec(sshchannel, command)
命令执行正常。但是,一旦我关闭频道,进程 运行ning 就会被终止。在我的例子中,命令(执行二进制可执行文件)将 运行 持续很长一段时间,我的程序无法等待它终止。我试过发出以下命令都得到相同的结果(关闭通道后进程仍然被终止):
/path/myprog
nohup /path/myprog
nohup /path/myprog &
/path/myprog &; disown
此外,我已经观察到 libssh 和 libssh2 的这种行为。是否缺少某些选项或命令?
提前致谢。
你可以使用 unix at
命令:
echo "cmd" | at now