NETCTL.SPECIAL(7)

πŸ’– NETCTL.SPECIAL(7) πŸ’–

okay bestie, welcome to netctl.special β€” the manual page for the special netctl systemd units ✨ (yes, the 7 means it's a misc/manpage situation, you got this πŸ’…)


🌸 NAME 🌸

netctl.special β€” the special netctl systemd units, aka the ones that live outside the normal netctl command life πŸ¦‹


✨ SYNOPSIS ✨

netctl.service, netctl-auto.service, netctl-ifplugd.service,
netctl-wait-online.service

πŸ’œ DESCRIPTION πŸ’œ

So netctl ships with a few systemd units bundled right in there, and here's the tea: they are not controlled through the netctl command. Nope! You drive these babies with the systemctl utility from systemd instead. Different doorway, same house 🏠


πŸ‘‘ SPECIAL UNITS πŸ‘‘

πŸŽ€ netctl.service

When it gets started, this unit does its best to start up the profiles that were running back when the unit was last stopped. Cute, right? Except πŸ™ˆ sometimes the interface that a profile binds to just... isn't available yet when netctl.service is trying to bring that profile up. Timing is everything and systemd has no chill.

A simple, hackish, solution is to do this:

echo "[[ -t 0 ]] || sleep 3" > /etc/netctl/interfaces/<interface>
chmod 755 /etc/netctl/interfaces/<interface>

A more concise solution is to first enable a profile through netctl and then disable it again through systemctl:

netctl enable <profile>
systemctl disable netctl@<profile>

This way the unit configuration file for the profile remains in existence, while the profile is not enabled. Lowkey genius, highkey useful ✨

πŸŒ™ netctl-sleep.service

When enabled, this unit stores and stops the active network profiles before the machine is put to sleep. Then, after the system is resumed, those previously stored profiles are restarted. It's giving "lights off, lights on, everything back where it was" 😴➑️🀩

πŸ¦‹ netctl-auto@<interface>.service

This unit issues a scan on the interface it's used for and tries to start a profile for a network it finds. It's targeted at wireless interfaces, so if it were a person it would 100% be holding its phone up going "any bars? πŸ“Ά"

Profile specific values for WPADriver are ignored, but plot twist β€” it is possible to specify WPADriver= in an interface hook (/etc/netctl/interfaces/<interface>). So you still have options, bestie.

Use netctl-auto(1) instead of netctl(1) to control the automatic profile selection when you're using this unit. Don't reach for the wrong tool, iykyk πŸ’…

πŸ“ netctl-ifplugd@<interface>.service

This unit starts ifplugd on the interface it is used for. It will try to start a netctl profile whenever a cable is plugged into the interface, and stop the profile when the cable is unplugged. Cable in, cable out, she's keeping track πŸ”Œβž‘οΈπŸ”Œ

Note that this unit does not provide network.target. Just so you know, fr fr.

⭐ netctl-wait-online.service

When activated, this unit waits for all enabled netctl profiles to come online. Enabling this unit causes network-online.target to only be reached once all enabled netctl profiles are fully connected. Very "we're not leaving until everyone's here" energy 🫢

The maximum time, in seconds, to wait for profiles can be passed to this unit via TIMEOUT_ONLINE=. The default value is 120. If a timeout occurs, the service enters a failed state. πŸ’€ So yeah, don't be late.


🌈 SEE ALSO 🌈


and that's the page babes πŸŽ€ go forth and systemctl responsibly. this was netctl.special(7), dated 01/26/2026, and you absolutely ate this read. periodt πŸ’–βœ¨

πŸ“¦ where this page comes from