【发布时间】:2011-11-29 06:47:50
【问题描述】:
我正在使用 C 程序中的系统调用执行 linux 命令。代码 sn-p -
cmd = "sudo conntrack -E -p udp -e NEW | logger -t log-conntrack -p daemon.notice &";
system(cmd);
此命令启动 3 个进程,现在我不知何故想要“conntrack”进程的进程 ID(下例中的 PID - 31951)。
根 31949 0.0 0.4 2356 1060 pts/2 S 17:39 0:00 sudo conntrack -E -p udp -e NEW -o id 根 31950 0.0 0.1 1716 504 pts/2 S 17:39 0:00 logger -t log-conntrack -p daemon.notice 根 31951 0.0 0.2 1852 544 pts/2 S 17:39 0:00 conntrack -E -p udp -e NEW -o id请帮忙。 谢谢
【问题讨论】:
-
system不会后台处理进程,它会等待命令返回,您是在单独的线程中运行它还是在fork()之后运行它? -
上面提到的cmd后面有“&”,在后台运行。
标签: c