我刚刚意识到我的系统没有正确限制每个用户的进程数量,因此不会阻止用户进行分叉炸弹并使整个系统崩溃:
user@thebe:~$ cat /etc/security/limits.conf | grep user
user hard nproc 512
user@thebe:~$ ulimit -u
1024
user@thebe:~$ :(){ :|:& };:
[1] 2559
user@thebe:~$ ht-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
...
Connection to thebe closed by remote host.
Run Code Online (Sandbox Code Playgroud)
这是一个错误还是为什么它忽略了限制limits.conf,为什么不应用ulimit -n声称的限制?
PS:我真的不认为在进程限制之前达到内存限制。这台机器有 8GB 内存,当我扔下叉形炸弹时,它只使用了 4%。 …
有没有办法在 Ubuntu 中找到睡眠进程?
我可以看到top可以列出睡眠进程的数量,但我希望它们与名称一起列出。
有什么命令吗?
在 Ubuntu 12.04 上,默认的电影播放器在播放(有问题?)mkv 视频时挂在框架上。我试图通过右键单击>关闭来关闭它,但无法终止它。当我尝试播放新视频时,它也不会启动。
如何从命令行终止进程?
我目前正在使用以下命令来获取进程:
ps -xa | grep node
Run Code Online (Sandbox Code Playgroud)
结果如下:
13611 ? Sl 0:03 /opt/brackets/Brackets-node /opt/brackets/node-core
20713 pts/1 Sl 0:00 node --harmony app.js
20838 pts/1 S+ 0:00 grep node
Run Code Online (Sandbox Code Playgroud)
我使用命令kill -9 20713来终止node --harmony app.js进程。
我怎样才能node --harmony app.js用一个命令杀死每一次?我厌倦了每次都输入进程号。
我是 Ubuntu 的新手,也是这里的新手。我需要知道这一点。
如何在 Ubuntu 中从终端杀死单个线程?我打开了 mozilla,它有 45 个线程。我想杀死其中一个。
我已经在网上搜索了很多资源,但无济于事。谁能帮我?
我已经在 Ubuntu 14.04 LTS 桌面上安装了 Couchbase Server。我是 Linux 新手,看过教程并做过初学者研究。但是,安装 Couchbase NoSQL 后,我可以使用 localhost:8091 在 firefox 中打开管理面板,所以我知道它正在运行,我有两个问题:
ps,ps aux和pgrep检查正在运行的进程的命令,但我看不到该couchbase服务。它在哪里?这真的很奇怪。有时,似乎没有任何充分理由,一堆命名的进程cc1会弹出并消耗我所有的 CPU,导致我的 ubuntu 几乎冻结。10-15 秒后,这些进程再次消失。有谁知道发生了什么?
我用谷歌搜索,似乎cc1与gcc编译器有关,但我没有编译任何东西。上次发生这种情况是在仅运行 Chrome 和终端(以及一些后台进程,例如 Dropbox)的情况下重新启动之后。
帮助将不胜感激!
假设我在一个 shell 会话中运行一个命令,例如bash -c 'apt-get update && apt-get upgrade'. 5 分钟后,我决定出去吃点心,发现我忘记添加某种形式的退出是否成功或失败的通知机制。
那么,我现在该怎么办?如果我可以从另一个终端查询其他命令(或者特别是那个 PID)的退出状态,也许我毕竟可以显示某种弹出窗口。所以问题是:如何从另一个终端查询已运行进程的退出状态?
换句话说,
鉴于我在终端 A 中有一个正在运行的进程并且它的 PID 是已知的
当我在终端 B 中执行一些命令时
然后我应该能够知道终端 A 中的进程是否以退出状态 0 或退出状态 > 1 结束。
我有一个简单的脚本,如下所示,用于检查fail2ban服务是否在 Ubuntu 18.04 上运行:
#!/bin/bash
# Script to check if fail2ban service is running
if pgrep -x "fail2ban" > /dev/null
then
echo "Fail2ban is running"
else
echo "Fail2ban is not running"
fi
Run Code Online (Sandbox Code Playgroud)
我已经在测试 VM 中安装了 fail2ban 并且正在 VM 上运行。下面是截图的systemctl status命令。
但是,当运行上述脚本时,我得到“Fail2ban 未运行”的结果。我不确定是否与脚本有关。我也尝试过ps aux命令而不是pgrep. 但是,我仍然得到相同的结果。
我安装了全新的 Ubuntu 和 Firefox。当浏览我常用的网站时,由于进程“isolate+”,我的 CPU 使用率超过 100%。谷歌已经完全没用了。我尝试在 Firefox 中禁用硬件加速,我已经卸载了 snap 版本并安装了 .deb 版本。我唯一的扩展是 ublock。操作系统:Ubuntu 22.04 Thinkpad T16、16GB RAM、i7 1260P、NVidia MX550(驱动程序=nouveau)
当我使用同一设备启动 Windows 时,此问题不存在。(双启动)
请帮我。
编辑:重现此行为的最简单方法是尝试 edclub.com 上的“打字丛林(英国)”第 45 节。(我正在尝试学习新的键盘布局......)

process ×10
command-line ×4
bash ×1
cpu-load ×1
firefox ×1
kill ×1
mozilla ×1
scripts ×1
ulimit ×1
video-player ×1