首页 code
systemd下添加local启动项
发布时间:2018年04月25日 评论数:抢沙发 阅读数:16866
从gentoo下找到的一键脚本,/usr/lib64/systemd/system-generators/gentoo-local-generator
要添加的启动命令以start stop后缀放当前目录,再运行 gentoo-local-generator, 非常方便
#!/bin/sh
locald_dir=/etc/local.d
cd "${locald_dir}" || exit 0
svc_dir=/run/systemd/generator
wan_dir=${svc_dir}/multi-user.target.wants
mkdir -p "${svc_dir}" "${wan_dir}" || exit 1
previous=
for f in *.start *.stop; do
# omit non-existing files ('*.start' when glob doesn't match)
[ -f "${f}" ] || continue
case "${f}" in
*.start)
is_start=1
fn=${f%.start}
# 'env' guarantees shell-like behavior when starting files.
# Especially that text files without shebangs will be
# executed via shell.
start_cmd="/usr/bin/env ${locald_dir}/${f}"
stop_cmd=/bin/true
if [ -f "${fn}".stop ]; then
stop_cmd="/usr/bin/env ${locald_dir}/${fn}.stop"
fi
;;
*.stop)
is_start=
fn=${f%.stop}
start_cmd=/bin/true
stop_cmd="/usr/bin/env ${locald_dir}/${f}"
;;
esac
# omit .stop files which have matching .start files
[ -z "${is_start}" -a -e "${fn}.start" ] && continue
svc_file=gentoo-local-${fn}.service
echo "[Unit]
Description=Service for local.d/${fn}.*
After=multi-user.target graphical.target ${previous}
ConditionFileIsExecutable=${locald_dir}/${f}
[Service]
Type=forking
RemainAfterExit=on
TimeoutSec=0
ExecStart=${start_cmd}
ExecStop=${stop_cmd}" > "${svc_dir}/${svc_file}"
ln -s "../${svc_file}" "${wan_dir}/${svc_file}"
previous=${svc_file}
done
本文作者:admin
文章标题: systemd下添加local启动项
本文地址:http://jiang.shuang.he.cn/blog/?post=32
版权声明:若无注明,本文皆为“”原创,转载请保留文章出处。
本文地址:http://jiang.shuang.he.cn/blog/?post=32
版权声明:若无注明,本文皆为“”原创,转载请保留文章出处。
相关文章