ps -辅助 | grep 节点结果:
root 2814 0.0 0.0 4344 0 ? S Mai27 0:00 sh -c node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js
root 2815 0.0 0.0 1358316 1096 ? Sl Mai27 0:17 node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js
root 2881 0.0 0.0 4344 0 ? S Mai27 0:00 sh -c npx webpack --mode development && node ./build/bundle.js
root 2910 0.0 0.7 1262156 63004 ? Sl Mai27 0:47 node ./build/bundle.js
Run Code Online (Sandbox Code Playgroud)
sudo kill 2814 2815 1881 2910结果导致权限被拒绝。
我知道,如果sudo用户不是您执行任务的用户,则在没有拒绝权限的情况下运行它是有意义的。但是,在这里我没有任何线索,有人可以解释为什么有时不能用 杀死根进程吗sudo?这有什么意义吗?(特别是,因为这只是我自己项目的一个webpack过程,所以我不太明白。)
由于您使用的是 Linux (Ubuntu) - 如果sudo kill仍然给出permission denied,则可能是因为您正在容器化应用程序(例如 Snap 应用程序)内运行,例如 VSCode 的集成终端。尝试sudo kill从不是 Snap 应用程序的另一个终端运行,例如 Alacritty、gnome-terminal、Konsole 等。
更多信息:
这些类型的容器化应用程序(Snap、Flatpak 等)通常受到AppArmor配置文件的限制,这些配置文件会阻止进行某些系统调用(也称为“系统调用”)。
该kill命令通过进行系统调用来工作signal()。如果signal系统调用被应用于您正在使用的终端的 AppArmor 配置文件阻止,则可能会导致权限被拒绝。
您可以通过检查内核日志(运行命令dmesg)来检查是否发生这种情况。例子:
[ 6405.232002] audit: type=1400 audit(1658415742.446:231): apparmor="DENIED" operation="signal" profile="docker-default" pid=89218 comm="kill" requested_mask="receive" denied_mask="receive" signal=kill peer="snap.code.code"
Run Code Online (Sandbox Code Playgroud)
错误消息的关键部分是:apparmor="DENIED" operation="signal" ... signal=kill。这意味着 AppArmor 正在阻止signal试图终止进程的系统调用。
| 归档时间: |
|
| 查看次数: |
6445 次 |
| 最近记录: |