plugins/systemd/README.md
The systemd plugin provides many useful aliases for systemd.
To use it, add systemd to the plugins array of your zshrc file:
plugins=(... systemd)
| 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) |
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.
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_CAPS to 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]