40 lines
900 B
Bash
Executable File
40 lines
900 B
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="/bin:/usr/bin"
|
|
|
|
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
|
|
exit $?
|
|
;;
|
|
resume)
|
|
echo "$1" > /proc/driver/nvidia/suspend
|
|
#
|
|
# 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
|
|
exit 0
|
|
;;
|
|
*)
|
|
exit 1
|
|
esac
|