使用system()执行后台进程
Executing a background process with system()
我尝试使用如下命令执行一个进程:
系统("zsh和");
我认为它不起作用,因为过程没有显示出来。为什么它不起作用?它应该如何改变?
不管在后台运行的是什么&符号,也不管system()会做什么,您都是在启动一个交互式shell。当启动交互式shell时,它会寻找要连接的控制台,如果连接失败,它会寻找要处理的标准行。如果失败,则退出。
下面的代码工作完美,使用htop我可以看到,睡眠仍然运行后,我的应用程序终止。我看不出它在你的代码中有什么不同。
#include <stdio.h>
int main()
{
return system("sleep 100 &");
}
这是因为zsh和所有shell绑定stdin,它不能在后台运行,所以它崩溃了。
相关文章:
- 如何制作启动 Python 脚本的 linux 后台进程(在 c 中)
- 内核模式驱动程序可以在任何进程上执行读取进程内存吗?
- 如何使用 std::in 和 getline() 检测后台进程中从 bash 注入的输入
- 如何结束在 COM 自动化期间执行的进程
- 在执行后台任务时与Objective-C中的GUI交互
- Linux fork - execl,执行的进程变成僵尸
- 使用 POCO 启动后台进程
- 如何仅在C中向后台进程发送SIGINT
- 识别后台进程并在 C++ WIN32 中置于前台
- 从另一个进程内的内存执行一个进程
- 在服务器上执行守护进程
- 如何在后台进程上处理来自Windows任务管理器的"End Task"?
- 无法中断执行.此进程当前未执行该类型的代码
- C++正在执行外部进程
- 将后台进程发送到前台
- 在arduino上运行后台进程
- Pidof从一个后台脚本到另一个后台进程
- 运行后台进程Linux简单shell.c++
- 在 java 代码中执行子进程时缺少输出
- 使用system()执行后台进程