O utilitário pm-suspend
(que está contido no pacote pm-utils e provavelmente já instalado em sua máquina ) é o que é usado para enviar seu computador para o modo de suspensão. Assim, para suspender "agora", você pode executar (como root ou usando o sudo):
# pm-suspend
Infelizmente, o pm-suspend não usa um parâmetro de tempo, tanto quanto eu sei. No entanto, você pode escrever um script de wrapper que tenha um parâmetro de tempo. Salve o script em algum lugar no seu $ PATH e chmod + x-lo. Não chame de "suspender". Um simples pode ser assim:
#!/bin/sh
#change this following line to wherever pm-suspend lives
suspend="/usr/sbin/pm-suspend"
#make sure we are root
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
if [ -z "$1" ]; then
echo "mysuspend: time in seconds expected"
exit 1;
elif [ "$1" = "now" ]; then
echo "Suspending now!"
wait="0"
else
#make sure we get a number.
echo "$1" | grep [a-zA-Z] > /dev/null
if [ $? -ne 0 ]; then
echo "Suspending in $1 seconds"
wait="$1"
else
echo "mysuspend: time in seconds expected"
exit 1
fi
fi
sleep "$wait"
$suspend
Aviso : Eu não testei isso além de "funciona para mim".
Você pode considerar alterar o comando suspender para pm-suspend-hybrid, que também salvará um arquivo de hibernação caso você fique sem energia enquanto estiver suspenso.
Outros utilitários que você pode estar interessado ou que poderiam tornar seu script mais robusto são pm-hibernate, pm-is-supported.