Skip to content
DevOps AI ToolKit
Newsletter
Linux Troubleshooting Toolkit

Linux Troubleshooting Toolkit

Use this Linux troubleshooting toolkit to diagnose failed systemd services, full disks and read-only filesystems, SSH and DNS failures, out-of-memory kills, permission errors, and boot problems.

Paste your error and get a triage plan.

Paste a log line, CLI error, stack trace, service failure, or config snippet and get a structured troubleshooting plan. Your snippet is carried straight into the AI Incident Response Assistant with Linux context prefilled.

Do not paste secrets, tokens, private keys, passwords, or customer data. Your snippet stays in your browser until you open the assistant.

Top 25 Linux Errors and Failure Modes

The production failures engineers hit most — each links to a full cause → fix → prevention guide.

systemd service failed to start

A unit enters a failed state because its ExecStart command exited non-zero or a dependency could not be satisfied.

Unit not found

systemctl reports that the requested unit does not exist, usually from a typo, a missing unit file, or a daemon-reload that never ran.

Permission denied

The kernel refuses an operation because file ownership, mode bits, or the running user lack the required access rights.

No space left on device

A write fails because the target filesystem has exhausted its data blocks or its inode table.

Disk full

A partition reaches capacity and applications, logs, or the OS itself begin failing until space is reclaimed.

Filesystem is read-only

The kernel remounts a volume read-only after detecting corruption or I/O errors, blocking all writes.

Mount failed (wrong fs type / bad superblock)

A mount command aborts because of a mismatched filesystem type, a bad option, or a damaged superblock.

fstab boot failure

Boot stalls or drops to emergency mode when a mountpoint listed in /etc/fstab cannot be satisfied.

Network is unreachable

The routing table has no path to the destination, often from a missing default gateway or downed interface.

DNS resolution failure

Name lookups fail with temporary failure in name resolution because the resolver or upstream DNS is unreachable or misconfigured.

SSH connection refused

The TCP connection is rejected because sshd is not listening, is on another port, or is blocked by a firewall.

SSH permission denied (publickey)

The server rejects authentication because it accepts no offered key, usually from wrong permissions or a missing authorized_keys entry.

High CPU usage

A runaway process or excessive load keeps CPUs saturated, degrading responsiveness across the host.

Out of memory (OOM killed)

The kernel OOM killer terminates a process to reclaim memory when the system runs out of RAM and swap.

Kernel panic

The kernel halts on an unrecoverable error, commonly an inability to mount the root filesystem during boot.

Journal logs filling disk

The systemd journal grows without bound and consumes disk space until retention is capped with journalctl vacuum settings.

Package dependency error

A package install or upgrade aborts because required dependencies are unmet or conflict with installed versions.

apt lock error

apt refuses to run because another process holds the dpkg/apt lock or a previous run left it stale.

sudo: user is not in the sudoers file

A user is denied privilege escalation because they are not granted sudo rights in the sudoers configuration.

Cron job not running

A scheduled job never fires due to a bad crontab syntax, a missing environment, or the cron daemon being stopped.

Firewall blocking a port

Traffic is dropped because firewalld, nftables, or iptables rules do not permit the service port.

SELinux / AppArmor denial

A mandatory access control policy blocks an operation and logs an AVC denial even though file permissions allow it.

NTP / time sync issue

Clock drift causes TLS, authentication, and scheduling failures when chrony or NTP is not keeping the system clock in sync.

Broken symlink

A symbolic link points to a missing target, causing commands to fail with no such file or directory.

Zombie or stuck process

A process hangs in uninterruptible sleep or lingers as a defunct zombie waiting on a parent that never reaps it.

Validate your config before you redeploy

Catch the structural mistakes that cause outages — 100% in your browser, nothing uploaded.

Linux Troubleshooting Hubs

Fix a whole class of Linux errors at once — each hub gathers the related guides for one failure class.

Best Linux Prompts

Turn symptoms, logs, and config into a structured plan with prompts tuned for Linux.

systemd Unit Failure Debugging

Diagnose a service that won't start

Use this prompt

Linux Disk Full Diagnosis

Triage a full or filling filesystem

Use this prompt

Linux Network Connectivity Debug

Trace SSH and network connection failures

Use this prompt

Linux OOM Memory Investigation

Find what triggered an OOM kill

Use this prompt

Linux CPU Load Investigation

Track down high load and CPU saturation

Use this prompt

DNS Resolution Failure Live Diagnosis

Debug name resolution on a host

Use this prompt

Linux File Permissions & ACL Audit

Resolve permission-denied errors

Use this prompt

sudoers Policy Authoring & Validation

Fix and safely grant sudo access

Use this prompt

Download the Linux Troubleshooting Runbook Pack

First-response checklists for a misbehaving host — services, disk, memory, network, SSH, and recent-change triage.

  • systemd failed-service checklist
  • Disk-full & read-only FS recovery
  • SSH connection & auth debugging
  • OOM / high-load triage
  • DNS & network reachability checks
Download the Linux Runbook Pack

All Linux Troubleshooting Guides

Grouped by failure-mode type — each guide covers cause, fix, validation, and prevention.

Authentication & TLS (6)

Networking (9)

Storage (11)

Deployment & Builds (4)

Runtime (8)

Performance (5)

API errors (1)

Configuration (6)

Other (40)

ChatGPT vs Claude for Research and Technical Explanations Claude vs ChatGPT vs Gemini: The 2026 Comparison for Engineers Analyze a systemd-coredump Core Dump with eu-unstrip and gdb eu-unstrip: Fixing Missing debuginfo When Reading a Core Dump Failed to allocate directory watch: Too many open files Minimal BASH-like line editing is supported error: no such partition. error: symbol Failed to initialize NVML: Driver/library version mismatch cgroup: fork rejected by pids controller Clock skew detected setlocale: LC_ALL: cannot change locale rmdir: failed to remove: Directory not empty sudo: must be owned by uid 0 and have the setuid bit set Host key verification failed RTNETLINK answers: File exists E: Failed to fetch E: Unable to locate package /bin/bash^M: bad interpreter bash: somecmd: command not found You are in emergency mode cannot access: No such file or directory firmware: failed to load rtl_nic/rtl8168g-2.fw (-2) bash: cd: No such file or directory No signal No such file or directory Failed to fetch ... getaddrinfo ENOTFOUND ./script.sh: No such file or directory Terminated by signal 2 Failed to start foo.service: Unit foo.service not found. No such file or directory Value too large for defined data type sudo: no tty present and no askpass program specified No such file or directory cron job not running A stop job is running for... ALERT! UUID=... does not exist. Dropping to a shell! bad interpreter: No such file or directory curl: (6) Could not resolve host Device or resource busy
Browse the full Linux category

Linux troubleshooting FAQ

How do I fix a failed systemd service?
Run systemctl status and journalctl -u -e to read the exit code and the last log lines. Fix the underlying cause (a bad ExecStart path, missing permissions, or an unsatisfied dependency), then run systemctl daemon-reload if you edited the unit file and systemctl restart . Use systemctl reset-failed to clear the failed state before retrying.
How do I free space when the disk is full?
Start with df -h to find the full mount and du -xh --max-depth=1 / to locate the biggest directories. Common wins are vacuuming the journal (journalctl --vacuum-size=200M), clearing the apt/dnf package cache, rotating or truncating large logs, and removing old kernels. Also check for deleted-but-open files with lsof +L1, since restarting the holding process reclaims that space.
Why is SSH refusing my connection?
Connection refused means nothing accepted the TCP connection. Confirm sshd is running (systemctl status ssh), that it is listening on the expected port (ss -tlnp | grep ssh), and that a firewall rule allows it. If you instead get permission denied (publickey), the daemon is reachable but your key was rejected — check authorized_keys, key permissions (700 on ~/.ssh, 600 on the key), and the server auth logs.
How do I diagnose out-of-memory (OOM) kills?
Look for the kernel OOM report with dmesg -T | grep -i oom or journalctl -k, which names the killed process and shows memory pressure at the time. Correlate with free -m and per-process usage from ps aux --sort=-%mem. Fix it by capping the offending workload's memory, adding swap or MemoryMax limits, or tuning the application; systemd-oomd and PSI metrics help catch pressure before the kernel steps in.
When should I use the Incident Assistant for a Linux host?
Reach for the Incident Assistant when a host is degraded or down and you need to move fast — a service crash-looping, a full disk, an OOM storm, or an SSH lockout. Paste the error, systemctl status, and relevant journal or dmesg output, and it correlates the symptoms into a ranked set of likely causes with concrete commands to confirm and remediate, which is faster than reading one error guide at a time.
How do I troubleshoot a SELinux or AppArmor denial?
If an operation fails even though file permissions look correct, suspect a mandatory access control policy. On SELinux, check for AVC denials with ausearch -m avc -ts recent or in /var/log/audit/audit.log, and use audit2why to explain them; restore contexts with restorecon or add a targeted policy rather than disabling enforcement. On AppArmor, run aa-status and inspect the profile, using aa-complain to test before adjusting the profile rules.