systemctl enable --now: Autostart a Service at Boot
Enable a systemd service to start at boot and start it immediately with one command.
01Command
$ sudo systemctl enable --now nginx02What it does
enable creates the symlinks that hook the unit into the boot process, but by itself it does NOT start the service — a freshly enabled service stays stopped until the next reboot or a separate start command. The --now option removes that trap by starting the units right after enabling them. The exact inverse is disable --now, which removes the boot symlink and stops the unit. Verify with systemctl status <unit>: "enabled" means it will start at boot, "active (running)" means it is running now.
03Risk
04Undo
$ sudo systemctl disable --now nginx05Sources
- Ubuntu Manpage: systemctl - Control the systemd system and service managerEvidence: "enable NAME... — Enable one or more units ... This will ... create symlinks ... hooking the specified units into various places"; "--now — When used with enable, the units will also be started. When used with disable ... the units will also be stopped."
- systemctl(1) — Arch Linux manualEvidence: "--now — When used with enable, the units will also be started. When used with disable or mask, the units will also be stopped." enable "hook[s] the specified units into various places" via symlinks.
Last verified: 2026-09-19 · Category: System & Settings
06Related solutions
timedatectl lists, sets, and verifies the system timezone and NTP sync status on systemd distributions.
hostnamectl sets the static, transient, and pretty hostname in one step on systemd distros, no reboot required.
systemctl list-timers shows every scheduled timer unit with its last and next run times, which many users forget replaces cron on modern distros.