linux - Linux启动应用程序的途径和方法有哪些

标签 linux

我对单击图标和让 init 创建新进程之间发生的事情感兴趣。我知道 bash 可以启动一个应用程序,但是 Bash 只是发出一个 fork 命令吗? X Windows 系统是否也这样做? Gnome 面板启动器是否只是将应用程序名称转发给 BASH?什么获取“启动进程的命令行”的信息?

最佳答案

在 Linux 中,您使用 fork() 创建新进程,因此每个对生成进程感兴趣的人都沿着这条路走。

BASH 使用 fork(),然后是一些其他的系统调用(我猜是 dup2()pipe() 等)来处理新进程的输入和输出配置。它还负责传递参数和环境变量。然后,最后一个 exec() 将执行交给第二个程序。

但是,您不需要使用 BASH 来生成进程。任何进程都可以fork()exec():您可以用不到 15 行 C 代码自己创建一个程序启动器。

关于linux - Linux启动应用程序的途径和方法有哪些,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5560443/

相关文章:

python - 需要帮助在 Linux 机器上用 Python 对处理过的 mdb 文件进行排序

c - x86 中 stat 结构的布局

linux - 在哪里可以找到适用于我的 Linux 系统的 libxul.so 库?

linux - 使用 cron 防止 Bash 脚本并行运行或重叠

linux - Linux 中的 OpenGL 困难

linux - 为什么清除熵计数需要root权限?

linux - Linux 中 `sysinfo.h` 的 Mac OS X 等效头文件

linux - 谷歌文件系统如何处理文件写入(和读取)?

c - Linux,了解用于网络扩展的 setsockopt() PACKET_FANOUT

linux - awk 模式可以匹配多行吗?