NETCTL(1)

πŸ’– NETCTL(1) πŸ’–

okay bestie, so this is the manual for netctl β€” yes, the manual name is literally just netctl and it's a section 1 page, so you already know it's a command you run in your shell. sit down, grab a strawberry drink πŸ“, and let's get into it.


✨ NAME ✨

netctl β€” control the netctl network profile manager 🫢


🌸 SYNOPSIS 🌸

netctl {COMMAND} [PROFILE]

netctl [--help | --version]

so the pattern is: you give it a COMMAND, and then maybe a PROFILE if that command wants one. orrr you just ask for --help or --version and it'll vibe with you instead. iconic behavior honestly πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so netctl is your girl for literally introspecting and controlling the state of the systemd services for the network profile manager. that's the whole assignment. the way that a tiny command holds the entire network profile situation in her hands?? main character energy fr fr πŸ‘‘


πŸŽ€ OPTIONS πŸŽ€

the following commands are understood (and yes, there's a lot of them β€” she's versatile):

  • list β€” lists every available profile. online profiles get marked with a '*', and if they're not online but are active, they get marked with a '+'. little star, little plus, so cute 🌟
  • store β€” saves which profiles are currently active. a little snapshot for later, like a photo dump but for network state πŸ“Έ
  • restore β€” loads back the profiles that were active during the last time you ran 'store'. it's giving "remember when" 😭
  • stop-all β€” stops all active network profiles. all of them. go to sleep, everyone πŸ’€
  • start [PROFILE] β€” starts the network profile you put on the command line.
  • stop [PROFILE] β€” stops the network profile you put on the command line.
  • restart [PROFILE] β€” restarts the network profile you put on the command line. and if it wasn't started yet? bestie it gets started anyway. no profile left behind 🫢
  • switch-to [PROFILE] β€” starts the profile you named on the command line, but only after stopping every single profile that refers to the same interface. clearing the runway first, we love a considerate queen ✨
  • is-active [PROFILE] β€” checks whether the named profile is active. prints the current state. yes it's literally just asking "are you up?" and printing the answer.
  • status [PROFILE] β€” shows terse runtime status info about a profile, and then follows it up with that profile's most recent log data from the journal. the receipts, the lore, the whole backstory πŸ”₯
  • enable [PROFILE] β€” enables the systemd unit for the profile you named. this creates a unit configuration file. if the file already exists, the command fails. and listen: no profile other than the one you specified will be enabled, periodt. also IMPORTANT β€” changes to the general options in a profile specification do not propagate to the unit configuration file automatically. so if you changed stuff, you have to 'reenable' the profile. don't forget, she will not remind you πŸ™ˆ
  • disable [PROFILE] β€” disables the systemd unit for the profile you named. this removes the file that 'enable' created β€” even if it was customized, so be careful. customized or not, it's getting deleted. scary? yes. true? also yes πŸ’€
  • reenable [PROFILE] β€” reenables the systemd unit for the profile you named. effectively it's just 'disable' + 'enable' holding hands 🌈
  • is-enabled [PROFILE] β€” checks whether the systemd unit for the specified profile is enabled. prints the current enable status.
  • edit [PROFILE] β€” opens the file of the specified profile in an editor. that's it, that's all. this does not reenable, restart, or verify any profiles β€” she's just holding the door for you, you do the rest πŸ’…
  • verify [PROFILE] β€” checks the file of the specified profile for syntax errors. and if no errors are found, no output is produced. silence = slay, no news is good news 🀫
  • wait-online [PROFILE] β€” waits until the interface of the profile has a routable IP address of some kind. just chillin' there until the vibes are routable ⏳

πŸ’œ EXIT STATUS πŸ’œ

on success it returns 0. otherwise you get a non-zero failure code. simple as that 🫢


⭐ ENVIRONMENT ⭐

  • $NETCTL_DEBUG β€” if you set it to "yes", debugging output gets generated. also heads up: the value of this variable is independent of the value of the variable with the same name inside profiles. same name, different lives, no crossover ✨
  • $NETCTL_STATE_FILE β€” the location of the state file. defaults to /var/lib/netctl/netctl.state. that's where the state lives, bestie 🏠

🌈 SEE ALSO 🌈

netctl-auto(1), netctl.profile(5), netctl.special(7), systemctl(1)


🌸 lowkey reminder: the tricky parts are real. enable fails if the unit file already exists, disable nukes the file even if you customized it, and reenable is the only way to push your general-option changes into the unit config. read those again before you go clicking around πŸ’–

k that's the whole page, you ate it, go configure something πŸŽ€

netctl(1) β€” dated 01/26/2026. that's the source/version-and-date sign-off, mwah, bye bestie πŸ’œβœ¨

πŸ“¦ where this page comes from