2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-10-22 07:38:08 +00:00
Files
xcat-core/xCAT-server/share/xcat/scripts/xcatd-init-compat-functions
T
2026-10-11 11:46:10 -03:00

93 lines
2.0 KiB
Plaintext

xcat_systemd_os_release_status()
{
os_release="${1-}/etc/os-release"
[ -r "$os_release" ] || return 2
os_id=
os_version=
while IFS='=' read -r key value; do
value=${value#\"}
value=${value%\"}
value=${value#\'}
value=${value%\'}
case "$key" in
ID) os_id=$value ;;
VERSION_ID) os_version=$value ;;
esac
done < "$os_release"
if [ "$os_id" = "debian" ] && [ -z "$os_version" ]; then
return 0
fi
os_major=${os_version%%.*}
case "$os_major" in
''|*[!0-9]*) return 2 ;;
esac
case "$os_id" in
rhel|centos|rocky|almalinux|ol|scientific)
[ "$os_major" -ge 7 ] && return 0
return 1
;;
fedora|ubuntu)
[ "$os_major" -ge 15 ] && return 0
return 1
;;
debian)
[ "$os_major" -ge 8 ] && return 0
return 1
;;
sles|sled|opensuse|opensuse-leap|opensuse-tumbleweed)
[ "$os_major" -ge 12 ] && return 0
return 1
;;
*)
return 2
;;
esac
}
xcat_target_uses_systemd()
{
if [ -d /run/systemd/system ]; then
return 0
fi
if [ -L /sbin/init ]; then
init_target=$(readlink /sbin/init 2>/dev/null || true)
case "$init_target" in
*systemd*) return 0 ;;
*) return 1 ;;
esac
fi
if [ -e /sbin/init ]; then
return 1
fi
if xcat_systemd_os_release_status; then
return 0
else
os_release_status=$?
if [ "$os_release_status" -eq 1 ]; then
return 1
fi
fi
if [ -x /usr/lib/systemd/systemd ] || [ -x /lib/systemd/systemd ]; then
return 0
fi
return 1
}
clear_xcatd_pending_state()
{
rm -f "$xcatd_state_dir/pending-xcatd" \
"$xcatd_state_dir/pending-deleted" \
"$xcatd_state_dir/pending-enabled" \
"$xcatd_state_dir/pending-xcatd.tmp."*
}