#!/bin/sh # # 2012-2015 Nico Schottelius (nico-cdist at schottelius.org) # 2013 Daniel Heule (hda at sfs.biz) # # This file is part of cdist. # # cdist is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # cdist is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with cdist. If not, see . # # # Check whether the given name will be started on boot or not # os=$("$__explorer/os") runlevel=$("$__explorer/runlevel") init=$("$__explorer/init") target_runlevel="$(cat "$__object/parameter/target_runlevel")" name="$__object_id" if [ "$init" = 'systemd' ]; then # this handles ALL linux distros with systemd # e.g. archlinux, gentoo, new RHEL and SLES versions state=$(systemctl is-enabled "$name" >/dev/null 2>&1 \ && echo present \ || echo absent) else case "$os" in debian|openwrt|devuan) state="present" [ -f "/etc/rc$runlevel.d/S"??"$name" ] || state="absent" ;; ubuntu) state="absent" [ -f "/etc/rc$runlevel.d/S"??"$name" ] && state="present" [ -f "/etc/init/${name}.conf" ] && state="present" ;; amazon|centos|fedora|owl|redhat) state=$(chkconfig --level "$runlevel" "$name" || echo absent) [ "$state" ] || state="present" ;; suse) # check for target if set, usable for boot. services in runlevel B if [ "$target_runlevel" != 'default' ]; then runlevel="$target_runlevel" fi # suses chkconfig has the same name, but works different ... state=$(chkconfig --check "$name" "$runlevel" || echo absent) [ "$state" ] || state="present" ;; gentoo) state="present" [ -f "/etc/runlevels/${target_runlevel}/${name}" ] || state="absent" ;; *) echo "Unsupported os: $os" >&2 exit 1 ;; esac fi echo $state