我的笔记本电脑上有相当多的风扇活动,甚至机器应该处于空闲状态。当我查看我的进程时,偶尔top
会出现一个进程,占用一些 CPU。pgrep
它运行为root
。有谁知道这是做什么用的?这是需要注意的事情,还是只是一个正常的系统例程?
Operating System: Debian GNU/Linux bullseye/sid
Kernel: Linux 5.6.0-2-686-pae
Architecture: x86
我运行一个while true; do pgrep -au root | grep pgrep; done
循环来查看它何时启动。看起来log
像这样:
22713 pgrep -n startx
22713 pgrep -n startx
22767 pgrep -n startx
22767 pgrep -n startx[...]
有什么方法可以看到启动该过程的原因吗?
更新:运行脚本从@hauke-laging我可以看到这/etc/acpi/power.sh
似乎是父进程:
-------------------------
10359 10358 root root pgrep -n startx
parent process:
10358 5645 root root /bin/sh /etc/acpi/power.sh
这里是:
#!/bin/sh
test -f /usr/share/acpi-support/key-constants || exit 0
. /usr/share/acpi-support/power-funcs
. /usr/share/acpi-support/policy-funcs
if { CheckPolicy || CheckUPowerPolicy; }; then
exit
fi
cat /usr/share/acpi-support/power-funcs | grep pgrep
我们开始吧:
startx=$(pgrep -n startx || :)
答案1
将变量更改awk
为root
和pgrep
。
$ /bin/ps -eo pid,ppid,user,euser,args |
awk -v user=hl -v procname=kwalletd5 '{ a[$1]=$0; }; '\
'( $3==user || $4==user ) && $5 ~ procname '\
'{ print "-------------------------"; print; print "parent process:"; print a[$2]; }'
-------------------------
4730 2725 hl hl /usr/bin/kwalletd5
parent process:
2725 1 hl hl /usr/lib/systemd/systemd --user
-------------------------
30655 1 hl hl /usr/bin/kwalletd5
parent process:
1 0 root root /usr/lib/systemd/systemd --switched-root --system --deserialize 31