Quickly list and inspect shell resource limits to troubleshoot and tune processes. 16.11.2025 | reading time: 3 min What limits does a process inherit from its shell, and how can he inspect them quickly? Use `ulimit -a` to list the current shell's resource limits and get an immediate snapshot useful for debugging hangs, file-descriptor leaks, or unexpected "too many open files" errors. Live demo: inspect and change limits Run `ulimit -a` to show all soft limits for the current shell; for example: ```bash $ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 31998 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 4096 ``` Lower a soft limit and verify it immediately: ```bash $ ulimit -n 256 $ ulimit -n 256 ``` Remember: raising a hard limit cannot be done by an unprivileged user and will require root or system configuration changes. Soft vs hard and units that matter Limits come as soft and hard values: the soft limit is enforced by the kernel for the process, the hard limit is the ceiling that only root can raise; values are shown with units (kbytes, blocks) so always check units before tuning, and keep in mind `ulimit` is a shell builtin so its behavior depends on the shell in use. Inspecting running processes and persistence To examine limits for an active process or to make changes persistent, combine `ulimit` with system-level tools: `/proc/<pid>/limits` and `prlimit` show the same values from the kernel perspective, while persistent, system-wide settings are configured via `/etc/security/limits.conf` or systemd service files for managed units. Practical notes and pitfalls Don't assume increasing a soft limit fixes every issue: some limits are per-user or system-wide, some are governed by PAM or systemd, and some services reset limits when they start; always test changes in a controlled shell session before applying them broadly to production services. Final thought and next step `ulimit -a` is the fastest way to see what a shell and its child processes are allowed to do; use it early in troubleshooting to avoid chasing misleading symptoms and then move to system tools for permanent changes, and if he wants to deepen his Linux skills consider exam-focused training such as CompTIA Linux+ or LPIC-1 with intensive prep at bitsandbytes.academy. Join Bits & Bytes Academy First class LINUX exam preparation. utilities processes security troubleshooting scripting infrastructure