When running `systemctl` commands that require sudo, the users' configured editor environment variables were not preserved. This resulted in systemctl opening a default editor. By instructing sudo to preserve the common environment variables for configuring an editor, systemctl can see these variables and open the users' preferred editor. This is mostly relevant for the `sc-edit` alias. |
||
|---|---|---|
| .. | ||
| README.md | ||
| systemd.plugin.zsh | ||
Systemd plugin
The systemd plugin provides many useful aliases for systemd.
To use it, add systemd to the plugins array of your zshrc file:
plugins=(... systemd)
Aliases
| Alias | Command | Description |
|---|---|---|
sc-failed |
systemctl --failed |
List failed systemd units |
sc-list-units |
systemctl list-units |
List all units systemd has in memory |
sc-is-active |
systemctl is-active |
Show whether a unit is active |
sc-status |
systemctl status |
Show terse runtime status information about one or more units |
sc-show |
systemctl show |
Show properties of units, jobs, or the manager itself |
sc-help |
systemctl help |
Show man page of units |
sc-list-unit-files |
systemctl list-unit-files |
List unit files installed on the system |
sc-is-enabled |
systemctl is-enabled |
Checks whether any of the specified unit files are enabled |
sc-list-jobs |
systemctl list-jobs |
List jobs that are in progress |
sc-show-environment |
systemctl show-environment |
Dump the systemd manager environment block |
sc-cat |
systemctl cat |
Show backing files of one or more units |
sc-list-timers |
systemctl list-timers |
List timer units currently in memory |
| Aliases with sudo | ||
sc-start |
sudo systemctl start |
Start Unit(s) |
sc-stop |
sudo systemctl stop |
Stop Unit(s) |
sc-reload |
sudo systemctl reload |
Reload Unit(s) |
sc-restart |
sudo systemctl restart |
Restart Unit(s) |
sc-try-restart |
sudo systemctl try-restart |
Restart Unit(s) |
sc-isolate |
sudo systemctl isolate |
Start a unit and its dependencies and stop all others |
sc-kill |
sudo systemctl kill |
Kill unit(s) |
sc-reset-failed |
sudo systemctl reset-failed |
Reset the "failed" state of the specified units, |
sc-enable |
sudo systemctl enable |
Enable unit(s) |
sc-disable |
sudo systemctl disable |
Disable unit(s) |
sc-reenable |
sudo systemctl reenable |
Reenable unit(s) |
sc-preset |
sudo systemctl preset |
Reset the enable/disable status one or more unit files |
sc-mask |
sudo systemctl mask |
Mask unit(s) |
sc-unmask |
sudo systemctl unmask |
Unmask unit(s) |
sc-link |
sudo systemctl link |
Link a unit file into the unit file search path |
sc-load |
sudo systemctl load |
Load unit(s) |
sc-cancel |
sudo systemctl cancel |
Cancel job(s) |
sc-set-environment |
sudo systemctl set-environment |
Set one or more systemd manager environment variables |
sc-unset-environment |
sudo systemctl unset-environment |
Unset one or more systemd manager environment variables |
sc-edit |
sudo systemctl edit |
Edit a drop-in snippet or a whole replacement file with --full |
sc-enable-now |
sudo systemctl enable --now |
Enable and start unit(s) |
sc-disable-now |
sudo systemctl disable --now |
Disable and stop unit(s) |
sc-mask-now |
sudo systemctl mask --now |
Mask and stop unit(s) |
User aliases
You can use the above aliases as --user by using the prefix scu instead of sc.
For example: scu-list-units will be aliased to systemctl --user list-units.
Unit Status Prompt
You can add a token to your prompt in a similar way to the gitfast plugin. To add the token
to your prompt, drop $(systemd_prompt_info [unit]...) into your prompt (more than one unit
may be specified).
The plugin will add the following to your prompt for each $unit.
<prefix><unit>:<active|notactive><suffix>
You can control these parts with the following variables:
-
<prefix>: Set$ZSH_THEME_SYSTEMD_PROMPT_PREFIX. -
<suffix>: Set$ZSH_THEME_SYSTEMD_PROMPT_SUFFIX. -
<unit>: name passed as parameter to the function. If you want it to be in ALL CAPS, you can set the variable$ZSH_THEME_SYSTEMD_PROMPT_CAPSto a non-empty string. -
<active>: shown if the systemd unit is active. Set$ZSH_THEME_SYSTEMD_PROMPT_ACTIVE. -
<notactive>: shown if the systemd unit is not active. Set$ZSH_THEME_SYSTEMD_PROMPT_NOTACTIVE.
For example, if your prompt contains PROMPT='$(systemd_prompt_info dhcpd httpd)' and you set the following variables:
ZSH_THEME_SYSTEMD_PROMPT_PREFIX="["
ZSH_THEME_SYSTEMD_PROMPT_SUFFIX="]"
ZSH_THEME_SYSTEMD_PROMPT_ACTIVE="+"
ZSH_THEME_SYSTEMD_PROMPT_NOTACTIVE="X"
ZSH_THEME_SYSTEMD_PROMPT_CAPS=1
If dhcpd is running, and httpd is not, then your prompt will look like this:
[DHCPD: +][HTTPD: X]