てきとうなメモ

本の感想とか技術メモとか

CentOS7の/sbin/service

if [ -f "${SERVICEDIR}/${SERVICE}" ]; then
   env -i PATH="$PATH" TERM="$TERM" SYSTEMCTL_IGNORE_DEPENDENCIES=${SYSTEMCTL_IGNORE_DEPENDENCIES} SYSTEMCTL_SKIP_REDIRECT=${SYSTEMCTL_SKIP_REDIRECT} "${SERVICEDIR}/${SERVICE}" ${ACTION} ${OPTIONS}
elif [ -x "${ACTIONDIR}/${SERVICE}/${ACTION}" -a -n "${ACTION}" ]; then
   env -i PATH="$PATH" TERM="$TERM" SYSTEMCTL_IGNORE_DEPENDENCIES=${SYSTEMCTL_IGNORE_DEPENDENCIES} SYSTEMCTL_SKIP_REDIRECT=${SYSTEMCTL_SKIP_REDIRECT} "${ACTIONDIR}/${SERVICE}/${ACTION}" ${OPTIONS}
elif `echo $ACTION | egrep -qw "start|stop|restart|try-restart|reload|force-reload|status|condrestart"` ; then
   echo $"Redirecting to /bin/systemctl ${ACTION} ${OPTIONS} ${SERVICE}.service" >&2
   exec /bin/systemctl ${ACTION} ${OPTIONS} ${SERVICE}.service
else
   echo $"The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl." >&2
   exit 2
fi

となっているので、

/sbin/service ${service} ${action}

とした場合、

/etc/init.d/${service}

があれば

/etc/init.d/${service} ${action}

を実行。

/usr/libexec/initscripts/legacy-actions/${service}/${action}

があれば

/usr/libexec/initscripts/legacy-actions/${service}/${action}

を実行。

${action}が

start|stop|restart|try-restart|reload|force-reload|status|condrestart

のどれかだったら

/bin/systemctl ${action} ${service}.service

を実行ということになる。

/usr/libexec/initscripts/legacy-actionsにはhttpdのconfigtestやgracefulがあったりするので、

/sbin/service httpd configtest

とかを実行可能である。