mirror of
https://github.com/systemd/systemd.git
synced 2024-11-06 16:59:03 +03:00
c1072f6473
Since there's no file extension, emacs and other editors do not know that this is supposed to be in shell syntax.
66 lines
3.2 KiB
Bash
66 lines
3.2 KiB
Bash
#compdef systemd-run -*- shell-script -*-
|
|
# SPDX-License-Identifier: LGPL-2.1+
|
|
|
|
# @todo _systemctl has a helper with the same name, so we must redefine
|
|
__systemctl() {
|
|
local -a _modes
|
|
_modes=("--user" "--system")
|
|
systemctl ${words:*_modes} --full --no-legend --no-pager "$@" 2>/dev/null
|
|
}
|
|
|
|
(( $+functions[__systemd-run_get_slices] )) ||
|
|
__systemd-run_get_slices () {
|
|
__systemctl list-units --all -t slice \
|
|
| { while read -r a b; do echo $a; done; };
|
|
}
|
|
|
|
(( $+functions[__systemd-run_slices] )) ||
|
|
__systemd-run_slices () {
|
|
local -a _slices
|
|
_slices=(${(fo)"$(__systemd-run_get_slices)"})
|
|
typeset -U _slices
|
|
_describe 'slices' _slices
|
|
}
|
|
|
|
_arguments \
|
|
{-h,--help}'[Show help message]' \
|
|
'--version[Show package version]' \
|
|
'--user[Run as user unit]' \
|
|
{-H+,--host=}'[Operate on remote host]:[user@]host:_sd_hosts_or_user_at_host' \
|
|
{-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \
|
|
'--scope[Run this as scope rather than service]' \
|
|
'--unit=[Run under the specified unit name]:unit name' \
|
|
{-p+,--property=}'[Set unit property]:NAME=VALUE:(( \
|
|
CPUAccounting= MemoryAccounting= BlockIOAccounting= SendSIGHUP= \
|
|
SendSIGKILL= MemoryLimit= CPUShares= BlockIOWeight= User= Group= \
|
|
DevicePolicy= KillMode= DeviceAllow= BlockIOReadBandwidth= \
|
|
BlockIOWriteBandwidth= BlockIODeviceWeight= Nice= Environment= \
|
|
KillSignal= FinalKillSignal= LimitCPU= LimitFSIZE= LimitDATA= \
|
|
LimitSTACK= LimitCORE= LimitRSS= LimitNOFILE= LimitAS= LimitNPROC= \
|
|
LimitMEMLOCK= LimitLOCKS= LimitSIGPENDING= LimitMSGQUEUE= \
|
|
LimitNICE= LimitRTPRIO= LimitRTTIME= PrivateTmp= PrivateDevices= \
|
|
PrivateNetwork= NoNewPrivileges= WorkingDirectory= RootDirectory= \
|
|
TTYPath= SyslogIdentifier= SyslogLevelPrefix= SyslogLevel= \
|
|
SyslogFacility= TimerSlackNSec= OOMScoreAdjust= ReadWritePaths= \
|
|
ReadOnlyPaths= InaccessiblePaths= EnvironmentFile= \
|
|
ProtectSystem= ProtectHome= RuntimeDirectory= PassEnvironment= \
|
|
))' \
|
|
'--description=[Description for unit]:description' \
|
|
'--slice=[Run in the specified slice]:slices:__systemd-run_slices' \
|
|
{-r,--remain-after-exit}'[Leave service around until explicitly stopped]' \
|
|
'--send-sighup[Send SIGHUP when terminating]' \
|
|
'--service-type=[Service type]:type:(simple forking oneshot dbus notify idle)' \
|
|
'--uid=[Run as system user]:user:_users' \
|
|
'--gid=[Run as system group]:group:_groups' \
|
|
'--nice=[Nice level]:nice level' \
|
|
'--setenv=[Set environment]:NAME=VALUE' \
|
|
'--on-active=[Run after SEC seconds]:SEC' \
|
|
'--on-boot=[Run SEC seconds after machine was booted up]:SEC' \
|
|
'--on-startup=[Run SEC seconds after systemd was first started]:SEC' \
|
|
'--on-unit-active=[Run SEC seconds after the last activation]:SEC' \
|
|
'--on-unit-inactive=[Run SEC seconds after the last deactivation]:SEC' \
|
|
'--on-calendar=[Realtime timer]:SPEC' \
|
|
'--timer-property=[Set timer unit property]:NAME=VALUE' \
|
|
'--wait=[Wait until service stopped again]' \
|
|
'*::command:_command'
|