mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-10-22 07:38:08 +00:00
cd90878516
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
93 lines
2.0 KiB
Plaintext
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."*
|
|
}
|