ulimit 是一个用于控制 shell 和由它启动的进程的资源使用的命令。在 Ubuntu 系统中,ulimit 可以对用户设置多种资源限制,包括文件大小、进程数、内存使用等。这些限制可以防止用户消耗过多的系统资源,从而保护系统的稳定性和安全性。
以下是一些常见的 ulimit 资源限制及其含义:
core file size):限制核心转储文件的大小。核心转储文件通常在程序崩溃时生成,用于调试。将其设置为 0 可以禁止生成核心转储文件。cpu time):限制进程可以使用的最大 CPU 时间(以秒为单位)。超过此限制的进程将被终止。max file size):限制单个文件的最大大小。这可以防止用户创建过大的文件,从而节省磁盘空间。open files):限制进程可以同时打开的最大文件描述符数量。文件描述符是用于访问文件和其他 I/O 资源的句柄。processes):限制用户可以同时运行的最大进程数。这有助于防止系统过载。virtual memory):限制进程可以使用的最大虚拟内存量(以 KB 为单位)。这有助于防止内存耗尽攻击。locked memory):限制进程可以锁定的最大内存量。锁定内存可以防止系统将其交换到磁盘上,从而提高性能。signal stack):限制进程可以使用的最大信号栈大小。信号栈用于处理异步信号。message queues):限制进程可以创建的最大消息队列长度。消息队列用于进程间通信。shared memory):限制进程可以使用的最大共享内存量。共享内存允许多个进程访问相同的内存区域,从而提高通信效率。要查看当前用户的 ulimit 设置,可以在终端中运行 ulimit -a 命令。要更改特定资源的限制,可以使用 ulimit -<resource>=<value> 命令,其中 <resource> 是要更改的资源名称,<value> 是要设置的新值。
请注意,ulimit 设置仅对当前 shell 会话有效。要永久更改用户的 ulimit 设置,可以将相应的 ulimit 命令添加到用户的 shell 配置文件(如 ~/.bashrc 或 ~/.profile)中。