Files
glfs/download/NVIDIA/NVIDIA-sysv-bootscripts/nvidia-sleep
2025-06-24 13:34:45 -06:00

49 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
if [ ! -f /proc/driver/nvidia/suspend ]; then
exit 0
fi
RUN_DIR="/var/run/nvidia-sleep"
XORG_VT_FILE="${RUN_DIR}"/Xorg.vt_number
PATH="/usr/bin"
RestoreVT() {
# Check if Xorg was determined to be running at the time
# of suspend, and whether its VT was recorded. If so,
# attempt to switch back to this VT.
if [[ -f "${XORG_VT_FILE}" ]]; then
XORG_PID=$(cat "${XORG_VT_FILE}")
rm "${XORG_VT_FILE}"
chvt "${XORG_PID}"
fi
}
case "$1" in
suspend|hibernate)
mkdir -p "${RUN_DIR}"
fgconsole > "${XORG_VT_FILE}"
chvt 63
if [[ $? -ne 0 ]]; then
exit $?
fi
echo "$1" > /proc/driver/nvidia/suspend
RET_VAL=$?
#
# If suspend/hibernate entry fails, switch back to the active VT
#
if [[ $RET_VAL -ne 0 ]]; then
RestoreVT
fi
exit $RET_VAL
;;
resume)
echo "$1" > /proc/driver/nvidia/suspend
RestoreVT
exit 0
;;
*)
exit 1
esac