Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 89b170310d | |||
| 4937e1ee11 | |||
| b6e6922998 |
11
openrc/hooks/openrc-user-install.hook
Normal file
11
openrc/hooks/openrc-user-install.hook
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
[Trigger]
|
||||||
|
Type = Path
|
||||||
|
Operation = Install
|
||||||
|
Operation = Upgrade
|
||||||
|
Target = etc/user/init.d/*
|
||||||
|
|
||||||
|
[Action]
|
||||||
|
Description = Configuring openrc user ...
|
||||||
|
When = PostTransaction
|
||||||
|
Exec = /usr/share/libalpm/scripts/openrc-user-hook create
|
||||||
|
NeedsTargets
|
||||||
@@ -10,23 +10,17 @@ openrc_live() {
|
|||||||
svc_help(){
|
svc_help(){
|
||||||
echo " ==> Start/stop/restart a service:"
|
echo " ==> Start/stop/restart a service:"
|
||||||
echo " rc-service <service> <start/stop/restart>"
|
echo " rc-service <service> <start/stop/restart>"
|
||||||
echo " ==> Further info on user services:"
|
|
||||||
echo "https://wiki.artixlinux.org/Main/OpenRC#User_Services"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
svc_add_help(){
|
svc_add_help(){
|
||||||
echo " ==> Add a service to runlevel:"
|
echo " ==> Add a service to runlevel:"
|
||||||
echo " rc-update add <service> <runlevel>"
|
echo " rc-update add <service> <runlevel>"
|
||||||
echo " ==> Add a user service to runlevel:"
|
|
||||||
echo " rc-update add <service> <runlevel> -U"
|
|
||||||
svc_help
|
svc_help
|
||||||
}
|
}
|
||||||
|
|
||||||
svc_del_help(){
|
svc_del_help(){
|
||||||
echo " ==> Remove a service from runlevel:"
|
echo " ==> Remove a service from runlevel:"
|
||||||
echo " rc-update del <service> <runlevel>"
|
echo " rc-update del <service> <runlevel>"
|
||||||
echo " ==> Remove a user service from runlevel:"
|
|
||||||
echo " rc-update del <service> <runlevel> -U"
|
|
||||||
svc_help
|
svc_help
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,11 +33,11 @@ each_conf() {
|
|||||||
op="$1"; shift
|
op="$1"; shift
|
||||||
|
|
||||||
case $op in
|
case $op in
|
||||||
sysctl) openrc_live; each_conf /usr/bin/sysctl -q -p ;;
|
sysctl) openrc_live; each_conf /usr/bin/sysctl -q -p ;;
|
||||||
binfmt) openrc_live; each_conf /usr/lib/openrc/sh/binfmt.sh ;;
|
binfmt) openrc_live; each_conf /usr/lib/openrc/sh/binfmt.sh ;;
|
||||||
reexec) openrc_live; /usr/bin/openrc-shutdown -R ;;
|
reexec) openrc_live; /usr/bin/openrc-shutdown -R ;;
|
||||||
# For use by other packages
|
# For use by other packages
|
||||||
reload) openrc_live; /usr/bin/rc-service "$@" reload ;;
|
reload) openrc_live; /usr/bin/rc-service "$@" reload ;;
|
||||||
add) svc_add_help ;;
|
add) svc_add_help ;;
|
||||||
del) svc_del_help ;;
|
del) svc_del_help ;;
|
||||||
*) echo >&2 " Invalid operation '$op'"; exit 1 ;;
|
*) echo >&2 " Invalid operation '$op'"; exit 1 ;;
|
||||||
|
|||||||
50
openrc/scripts/openrc-user-hook
Normal file
50
openrc/scripts/openrc-user-hook
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
openrc_live() {
|
||||||
|
if [ ! -f /run/openrc/softlevel ]; then
|
||||||
|
echo >&2 " Skipped: Current root is not booted."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
svc_help(){
|
||||||
|
echo " ==> Start/stop/restart a service:"
|
||||||
|
echo " rc-service -U <service> <start/stop/restart>"
|
||||||
|
}
|
||||||
|
|
||||||
|
svc_add_help(){
|
||||||
|
echo " ==> Add a user service to runlevel:"
|
||||||
|
echo " rc-update -U add <service> <runlevel>"
|
||||||
|
svc_help
|
||||||
|
}
|
||||||
|
|
||||||
|
svc_del_help(){
|
||||||
|
echo " ==> Remove a user service from runlevel:"
|
||||||
|
echo " rc-update -U del <service> <runlevel>"
|
||||||
|
svc_help
|
||||||
|
}
|
||||||
|
|
||||||
|
create_user_symlinks() {
|
||||||
|
umin=$(grep "^UID_MIN" /etc/login.defs)
|
||||||
|
umax=$(grep "^UID_MAX" /etc/login.defs)
|
||||||
|
users=$(awk -F':' -v "min=${umin##UID_MIN}" -v "max=${umax##UID_MAX}" \
|
||||||
|
'{ if ( $3 >= min && $3 <= max ) print $0 }' /etc/passwd \
|
||||||
|
| cut -d: -f1)
|
||||||
|
|
||||||
|
for u in $users; do
|
||||||
|
if [ ! -e /etc/init.d/user.$u ]; then
|
||||||
|
ln -sv /etc/init.d/user /etc/init.d/user.$u
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
op="$1"; shift
|
||||||
|
|
||||||
|
case $op in
|
||||||
|
create) create_user_symlinks ;;
|
||||||
|
add) svc_add_help ;;
|
||||||
|
del) svc_del_help ;;
|
||||||
|
*) echo >&2 " Invalid operation '$op'"; exit 1 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
Reference in New Issue
Block a user