【发布时间】:2016-06-24 04:12:58
【问题描述】:
我正在运行一个通过 ssh 会话运行的程序。这意味着我使用 putty 连接到 linux,程序启动,使用 /etc/bash.bashrc 文件。在某些时候,程序假设结束并随之结束通过 putty 的 ssh 会话应该断开连接。 到目前为止,我用下面的代码做了什么,但它不起作用:程序退出,并停留在 linux shell 中,这意味着腻子已连接。我期望的是命令“退出”来结束腻子 ssh 会话.
char file_name[20];
pid_t pid = fork();
if (pid == 0)
{
printf("Starting vi\r\n");
char external_cmd[200] = "vi ";
strcat(external_cmd, file_name);
system(external_cmd);
} else
{
waitpid(pid,0,0);
printf("Exit..\r\n");
system("exit");
}
感谢您的帮助。
【问题讨论】:
-
“它不起作用”从来都不是一个充分的问题描述。请描述确切的预期行为和观察到的实际行为。
-
还不清楚。 “留在 Linux shell 中”是什么意思?远程外壳?本地外壳?最好能显示日志。
system开始一个新进程。所以使用它来运行exit不会导致当前进程退出。但是,当代码完成运行时,进程应该退出。您没有提供完整的示例,因此不清楚在显示的代码之后会发生什么(如果有的话)(它会在那里结束吗?)。 -
好的,再次编辑,希望更清楚