繁体   English   中英

确定如何调用 linux 进程

[英]determine how a linux process was invoked

linux 中有没有办法确定如何调用进程? 我知道, ps显示启动参数,但我对进程启动的执行方式感兴趣。

它是init.d脚本、 cron job还是通过 cli 手动调用。 现在我正在手动查看所有配置/命令,有没有一种简单的方法可以忽略?

(我也知道, systemd等的存在与发行版相关,这有助于优先考虑。)

在大多数情况下,对于 pid 1234 的进程,您可以通过/proc/1234/获取有关它的有价值信息(有关详细信息,请参阅proc(5)

另请参见凭据(7)Advanced Linux ProgrammingLinux From Scratch

例如,在终端中尝试ps $$然后cat /proc/$$/status然后cat /proc/$$/maps然后 cat / proc / $$ cat /proc/$$/comm

考虑编写您的 C 程序执行适当的系统调用(2) (可能使用opendir(3)readdir(3) ...)以从/proc/ ... 查询该信息。

记得阅读errno(3) 许多函数(如open(2)read(2)getpwnam(3) ....)可能会失败。

Download, then study for inspiration the source code of the GNU bash shell (or even of the Linux kernel ), it is free software .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM