From a27e110d3bd303a2b2a0dcee939400935f051984 Mon Sep 17 00:00:00 2001 From: HAT Date: Mon, 29 Aug 2011 00:51:42 +0900 Subject: [PATCH] systemd initscript: some fixes --- distrib/initscripts/Makefile.am | 5 ++- .../initscripts/rc.atalk.redhat-systemd.tmpl | 38 +++++++++++-------- .../service.atalk.redhat-systemd.tmpl | 4 +- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/distrib/initscripts/Makefile.am b/distrib/initscripts/Makefile.am index 3ff9246b..85eb8f44 100644 --- a/distrib/initscripts/Makefile.am +++ b/distrib/initscripts/Makefile.am @@ -98,12 +98,13 @@ $(service_DATA): service.atalk.redhat-systemd cp -f service.atalk.redhat-systemd $(service_DATA) install-data-hook: - -systemctl enable $(sysv_SCRIPTS) + -systemctl daemon-reload uninstall-startup: - -systemctl disable $(sysv_SCRIPTS) + -systemctl disable $(service_DATA) rm -f $(DESTDIR)$(sysvdir)/$(sysv_SCRIPTS) \ $(DESTDIR)$(servicedir)/$(service_DATA) + -systemctl daemon-reload endif diff --git a/distrib/initscripts/rc.atalk.redhat-systemd.tmpl b/distrib/initscripts/rc.atalk.redhat-systemd.tmpl index e05972b3..7468d3a7 100644 --- a/distrib/initscripts/rc.atalk.redhat-systemd.tmpl +++ b/distrib/initscripts/rc.atalk.redhat-systemd.tmpl @@ -1,6 +1,6 @@ #!/bin/sh -# Netatalk daemons. +# Netatalk startup script for systemd. ATALK_BIN=:BINDIR: ATALK_CONF_DIR=:ETCDIR: @@ -30,44 +30,52 @@ if [ -f ${ATALK_CONF_DIR}/netatalk.conf ]; then . ${ATALK_CONF_DIR}/netatalk.conf fi -if [ x"${ATALKD_RUN}" != x"no" -a -x ${ATALK_SBIN}/atalkd ]; then +netatalk_startup() { + if [ x"${ATALKD_RUN}" != x"no" -a -x ${ATALK_SBIN}/atalkd ]; then ${ATALK_SBIN}/atalkd - + if [ -x ${ATALK_BIN}/nbprgstr ]; then ${ATALK_BIN}/nbprgstr -p 4 ${ATALK_NAME}:Workstation${ATALK_ZONE} ${ATALK_BIN}/nbprgstr -p 4 ${ATALK_NAME}:netatalk${ATALK_ZONE} fi - + if [ x"${PAPD_RUN}" = x"yes" -a -x ${ATALK_SBIN}/papd ]; then ${ATALK_SBIN}/papd fi - + # check for timelord in bin directory if [ x"${TIMELORD_RUN}" = x"yes" -a -x ${ATALK_BIN}/timelord ]; then ${ATALK_BIN}/timelord fi - + # check for timelord in sbin directory if [ x"${TIMELORD_RUN}" = x"yes" -a -x ${ATALK_SBIN}/timelord ]; then ${ATALK_SBIN}/timelord fi - + # check for a2boot in bin directory if [ x"${A2BOOT_RUN}" = x"yes" -a -x ${ATALK_BIN}/a2boot ]; then ${ATALK_BIN}/a2boot fi - + # check for a2boot in sbin directory if [ x"${A2BOOT_RUN}" = x"yes" -a -x ${ATALK_SBIN}/a2boot ]; then ${ATALK_SBIN}/a2boot fi -fi - -if [ x"${CNID_METAD_RUN}" = x"yes" -a -x ${ATALK_SBIN}/cnid_metad ]; then + fi + + if [ x"${CNID_METAD_RUN}" = x"yes" -a -x ${ATALK_SBIN}/cnid_metad ]; then ${ATALK_SBIN}/cnid_metad $CNID_CONFIG -fi - -if [ x"${AFPD_RUN}" = x"yes" -a -x ${ATALK_SBIN}/afpd ]; then + fi + + if [ x"${AFPD_RUN}" = x"yes" -a -x ${ATALK_SBIN}/afpd ]; then ${ATALK_SBIN}/afpd ${AFPD_UAMLIST} -g ${AFPD_GUEST} \ - -c ${AFPD_MAX_CLIENTS} -n ${ATALK_NAME}${ATALK_ZONE} + -c ${AFPD_MAX_CLIENTS} -n ${ATALK_NAME}${ATALK_ZONE} + fi +} + +if [ x"${ATALK_BGROUND}" = x"yes" -a x"${ATALKD_RUN}" != x"no" ]; then + netatalk_startup >& /dev/null & +else + netatalk_startup fi diff --git a/distrib/initscripts/service.atalk.redhat-systemd.tmpl b/distrib/initscripts/service.atalk.redhat-systemd.tmpl index 57316299..034e5fb2 100644 --- a/distrib/initscripts/service.atalk.redhat-systemd.tmpl +++ b/distrib/initscripts/service.atalk.redhat-systemd.tmpl @@ -1,4 +1,4 @@ -# netatalk service file for systemd +# This file is part of netatalk. [Unit] Description=File and Printer sharing for Macintosh clients @@ -6,7 +6,7 @@ After=syslog.target network.target [Service] Type=oneshot -ExecStart=/bin/bash -c "exec :PKGLIBEXECDIR:/netatalk.sh" +ExecStart=/bin/sh -c "exec :PKGLIBEXECDIR:/netatalk.sh" RemainAfterExit=yes [Install] -- 2.39.2