Security tooling stopped and prevented from restarting.
What gives it awayAn auditd, firewall, or endpoint agent unit failing, particularly with a masked or modified unit file.
ATT&CK T1562.001Nothing matches that yet. Tell us what you were looking for and it goes on the list.
systemd · Event Failed to start
systemd tried to start a service and it did not stay running. The line itself only says which unit failed — the reason is in the exit status and the unit's own log, and reading those in the right order turns a vague failure into a specific one.
Also written as Failed to startsystemd unit entered failed statesystemctl failed unitMain process exited code=exited
A background service on this Linux machine did not start. If something has stopped working, this is likely why.
The one-line failure is the least informative part. `systemctl status` gives the exit code and the last few log lines, and `journalctl -u <unit>` gives the rest. Read the exit status first: a non-zero application exit is a different problem from a signal, which is a different problem from a dependency that never came up. Watch for units in a restart loop — systemd gives up after the configured burst limit and then stays quiet, which people mistake for the problem resolving.
Sanitised. Addresses come from the RFC 5737 documentation ranges.
Aug 28 09:44:12 web-01 systemd[1]: Starting nginx - high performance web server...
Aug 28 09:44:12 web-01 nginx[24960]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Aug 28 09:44:12 web-01 systemd[1]: nginx.service: Main process exited, code=exited, status=1/FAILURE
Aug 28 09:44:12 web-01 systemd[1]: nginx.service: Failed with result 'exit-code'.
Aug 28 09:44:12 web-01 systemd[1]: Failed to start nginx - high performance web server. Everything else in the log line is context.
exit-codeThe process exited non-zero. An application-level error, and the exit status narrows it. signalThe process was killed by a signal. SIGKILL frequently means the out-of-memory killer. timeoutThe unit did not signal readiness in time. Often a slow dependency rather than a fault. core-dumpThe process crashed. Look for a core file and check for a coredumpctl entry. start-limit-hitsystemd stopped retrying after too many rapid restarts. The unit is now down and silent. Most of the time it is one of these.
What gives it awayAn auditd, firewall, or endpoint agent unit failing, particularly with a masked or modified unit file.
ATT&CK T1562.001What gives it awayrsyslog, journald, or a shipping agent failing, followed by a visible gap in collected logs.
ATT&CK T1562.002What gives it awayA familiar unit failing after its ExecStart was changed, which shows up as a missing binary or an unexpected exit code.
ATT&CK T1543.002What gives it awayUnits killed by signal on a machine under sustained memory pressure from an unfamiliar process.
ATT&CK T1496systemctl --failed --no-pager journalctl -u nginx -n 100 --no-pager -o short-precise journalctl -p err -b --no-pager | head -50 systemctl show nginx -p ExecStart -p Restart -p RestartSec -p StartLimitBurst event.dataset:"system.syslog" and process.name:"systemd" and message:"Failed to start" | stats count by host.name, message `systemctl status <unit>` gives the exit code and the last handful of log lines, which is usually enough. If it is not, `journalctl -u <unit> -n 100 --no-pager` gives the full output. The 'Failed to start' line in syslog is only a summary — the actual error is almost always in the service's own output just above it.
systemd could not execute the program named in ExecStart. The usual causes are a wrong path, a missing executable, a file that is not marked executable, or a missing interpreter on the first line of a script. Check the path exists and that it runs when you invoke it directly.
It hit the start limit. systemd allows a set number of restarts within a time window and then stops trying, to avoid looping forever. The unit stays failed and quiet, which people mistake for the problem going away. Fix the underlying fault, then `systemctl reset-failed <unit>` and start it again.
The process was killed rather than exiting on its own. The most common cause is the kernel's out-of-memory killer — check `dmesg` for an entry naming the process. It can also be a crash, in which case `coredumpctl` may have captured something worth looking at.
Last reviewed 28 August 2026