Implement selective start of autostart services
This commit is contained in:
28
autostart.sh
28
autostart.sh
@@ -1,11 +1,38 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -o nounset
|
set -o nounset
|
||||||
|
# set -x
|
||||||
|
|
||||||
|
selective=0
|
||||||
|
if (( $# > 0 )) ; then
|
||||||
|
selective=1
|
||||||
|
services=("${@}")
|
||||||
|
fi
|
||||||
|
|
||||||
|
do_run() {
|
||||||
|
name="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
run=0
|
||||||
|
if (( $selective )) ; then
|
||||||
|
for s in "${services[@]}" ; do
|
||||||
|
if [[ "$s" == "$name" ]] ; then
|
||||||
|
run=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
run=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
return $(( ! $run ))
|
||||||
|
}
|
||||||
|
|
||||||
run_raw() {
|
run_raw() {
|
||||||
name="$1"
|
name="$1"
|
||||||
shift
|
shift
|
||||||
|
|
||||||
|
do_run "$name" || return
|
||||||
|
|
||||||
systemd-run \
|
systemd-run \
|
||||||
--user \
|
--user \
|
||||||
--unit "${name}" \
|
--unit "${name}" \
|
||||||
@@ -46,6 +73,7 @@ run_oneshot() {
|
|||||||
schedule() {
|
schedule() {
|
||||||
name="$1"; shift
|
name="$1"; shift
|
||||||
spec="$1"; shift
|
spec="$1"; shift
|
||||||
|
do_run "$name" || return
|
||||||
systemd-run \
|
systemd-run \
|
||||||
--user \
|
--user \
|
||||||
--unit "${name}" \
|
--unit "${name}" \
|
||||||
|
|||||||
Reference in New Issue
Block a user