小编peo*_*oro的帖子

允许用户监听 1024 以下的端口

我需要允许用户(与 root 不同)运行侦听端口 80 的服务器。

有没有办法做到这一点?

linux networking tcp privileges authbind

73
推荐指数
4
解决办法
14万
查看次数

内存不足时系统挂起

我有一个 eeePC 900a:它有一个 8GB 的​​闪存作为磁盘,只有 1GB 的 RAM。安装在其上的 Linux 发行版是 ArchLinux。

当系统内存不足时,它会变得非常无响应:执行诸如切换到 TTY1 甚至移动鼠标指针之类的操作需要几秒钟/几分钟的时间。有时看起来系统只是冻结了:我们三个之前我就不管了,到目前为止什么都没有改变。

我宁愿避免在这台 eeePC 上创建交换分区/文件,因为磁盘已经那么小,而且交换空间上的许多写入会大大缩短闪存卡的寿命。此外,我认为交换文件/分区只会移动问题,而不是绝对修复它。

内核是否应该在内存不足时杀死一些随机应用程序?为什么这样做会失败(或需要很长时间)?

几个月/几年前,我已经尝试进一步研究这一点,但找不到任何实际可行的方法......

linux memory freeze

47
推荐指数
4
解决办法
3万
查看次数

谁创建了 /etc/{group,gshadow,passwd,shadow}-?

在我可以访问的任何 Linux 系统(几个 Archlinux、一个 Ubuntu、一个 Debian Sid 和一个 Gentoo)中/etc/,.

/etc/group-
/etc/gshadow-
/etc/passwd-
/etc/shadow-
Run Code Online (Sandbox Code Playgroud)

在互联网上,他们说这些只是备份文件,更新到上次更改的下一个。

现在我想知道:谁在创建这些文件?是我的编辑吗?是应用程序编辑这些文件(gpasswd、useradd、groupadd 等)吗?它是否处于较低级别(甚至可能是内核模块)?

linux etc files

32
推荐指数
1
解决办法
6421
查看次数

xorg 内存泄漏

在我的桌面上,Xorg 泄漏了大量内存。我过去常常让这台机器运行数天(数周、数月......),但大约每周一次我被迫重新启动 xorg,因为它占用了太多内存。

我是唯一受此问题影响的人吗?为什么会发生这种情况?
是 xorg 被窃听了,还是别的什么(也许是一些 xorg 模块)?
我能做些什么来避免它吗?


更多信息:

我使用的是 ArchLinux,内核 2.6.36,nvidia 驱动程序 260.19.36,gnome 2.32.1。

无论如何,我已经有很多时间遇到这个问题,比如一年多。


这是正常运行约 9 天后顶部显示 Xorg 进程的方式...

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
1591 root      20   0  278m 229m 9364 S    2 11.8 244:38.73 Xorg
Run Code Online (Sandbox Code Playgroud)

我只有几个打开的窗户。229MB 的常驻内存对我来说似乎很多(而且它会随着时间的推移不断增长)。一旦我重新启动 Xorg,我还会在其生命周期开始时添加进程统计信息。


这是我的 Gnome 桌面一启动:

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1573 root      20   0 89508  43m  11m S    1  2.2   0:03.53 Xorg
Run Code Online (Sandbox Code Playgroud)

linux memory-leaks xorg

13
推荐指数
2
解决办法
6943
查看次数

为用户设置语言环境

我想为我的用户设置一个不同于系统语言环境的语言环境。

通过插入export LANG=en_US.utf8.bashrc我可以为 shell 做到这一点,但它仍然不适用于不是通过 shell 启动的应用程序(即桌面环境,LXDE,它是通过 GDM3 启动的)。

有什么方法可以为我的用户设置不同的默认语言环境(由任何类型的应用程序使用,即使不是通过 bash 启动的)?

i18n environment-variables locale

8
推荐指数
1
解决办法
1万
查看次数

终端转义序列:为什么终端不报告它们支持的功能,而不是依赖于 terminfo?

我最近一直在研究转义序列,我对它们的功能感到惊讶。你甚至可以xterm用它们移动一个X11 窗口(试试printf '\e[3;0;0t'),哇!

了解终端支持哪些功能的最常见方法似乎是使用数据库。这就是ncurses它的作用,99.9% 的依赖转义序列的应用程序都使用它。
Ncurses 读取terminfoshellTERM环境变量的数据库,以确定您的控制台支持哪些功能。
您可以更改TERMshell的环境变量,如果您这样做,大多数应用程序可能会开始使用较少的功能或行为不端(尝试运行nanovim设置后TERM="")。

我已经看到一些转义码会导致终端报告内容。例如<ESC>[6n使终端报告光标位置。( printf '\e[6n')

  • 我们为什么不使用类似的报告机制让控制台报告它支持哪些功能?

TERM每个控制台都可以宣传自己的功能,而不是将功能与 的值耦合在一起,从而使整个事情更加精确和可靠。为什么这不是一回事?


编辑:我之前应该问过的事情...我想创建一个新的转义序列,以破解 konsole 和 gnome-terminal 以支持它并在某些脚本中使用它。
我希望能够查询控制台以了解我正在运行的控制台是否支持此功能 - 建议的方法是什么?

terminal escape-characters terminfo

8
推荐指数
2
解决办法
2319
查看次数

预加载 OOM 杀手

我的机器上没有任何交换分区/文件,只有 2GB 的 RAM。

有时会发生内存被某些进程(Xorg +browser+compiler+...)饱和并且系统无限期挂起的情况,重新启动它的唯一方法(硬重置除外)是使用 SysRq。

我知道Out Of Memory Killer不会帮助我,因为当内存完全满时,内核无法分配 OOM Killer 本身。

有没有办法预加载OOM Killer,让它在内存完全满的情况下真正工作?
或者是否可以调整内核以便在我的 ram 已满时激活 OOM Killer ${TOTAL_RAM} - 10MB

linux kernel memory

4
推荐指数
2
解决办法
1211
查看次数