如何从C执行/打开/运行另一个程序,而不是阻止它,而是让它同时运行。然后我想做一些像服务器/客户端这样的测试,如果已经完成了,我只想杀死/关闭这个程序。我读过
system() or execv()
但是,第一种似乎阻碍了等待结果,第二种似乎只在Linux上工作?在最好的情况下,我希望有跨平台或最低的MacOS/Windows/Linux(Ubuntu)工作解决方案。我也需要关闭这个以前打开的程序,当我不再需要它。
我们都知道linux系统调用setsid()允许我们在任何需要的时候创建一个新的会话,尽管通常的做法是在我们登录或者想要启动一个新的守护进程时。我注意到linux-PAM (可插拔身份验证模块)也有“会话管理”的概念,所以我的问题是: Linux PAM中的会话是否与setsid()创建的会话相同?在linux PAM会话中通常可以做什么?谢谢。
我在Linux上工作,我在Linux终端上执行了for循环,如下所示:
for i in `cat fileName.txt`
do
echo $i
vim $i
done
fileName.txt是一个包含我在vim编辑器中一个接一个打开的大量文件条目的文件。现在,我必须跳过打开中间的其他文件。(即,我必须中断for循环)。有什么建议如何获得运行for循环的PID吗?然后杀掉同样的人。提前谢谢。
在Windows上,这会杀死任何以“这是进程标题”作为标题的进程。
taskkill /FI "WINDOWTITLE eq This is a process title"
我搜索了所有的地方,没有发现任何关于如何在Linux上这样做的信息。
如何在Linux上实现呢?
也就是说:不是二进制名称/命令--进程/窗口标题。