web-dev-qa-db-fra.com

Suspension de la ligne de commande pendant une durée prédéterminée

Comment puis-je suspendre la ligne de commande pendant une durée prédéterminée?

Par exemple, dans le terminal, je peux faire "pm-suspend", et cela suspend l'ordinateur.
Mais je veux que l'ordinateur sorte de cette suspension quelques jours plus tard, tout seul, et je ne sais pas comment faire.

3
Hermann Ingjaldsson

Je suppose que vous voulez suspendre la RAM ( ACPI S ).

Voici ce qui fonctionne pour moi.

Sudo rtcwake --verbose  --mode mem --time `date '+%s' -d '+ 130 minutes'`

La sous-commande est passée comme argument à --time est le moyen facile de générer l'horodatage int requis par cet argument.

Notez que sur mon système, je dois tricher un peu: la commande ci-dessus ne suspend que 10 minutes - doit être liée à l'horloge interne n'utilisant pas UTC.

Notez également que --mode peut prendre d'autres valeurs:

  • disk vers Suspend-to-disk (ACPI S4)
  • no pour simplement régler l'alarme mais ne suspend pas
  • (il existe d'autres options, voir man rtcwake)

Si vous utilisez no, vous pouvez alors vérifier l'état de l'alarme avec

cat /proc/driver/rtc

Regardez les 6 premières lignes:

rtc_time     : 10:34:45
rtc_date     : 2012-02-29
alrm_time    : 10:44:36
alrm_date    : 2012-02-29
alarm_IRQ    : yes
alrm_pending : no

alrm_pending affiche toujours no pour moi, allez comprendre ... Mais le plus intéressant est le alarm_IRQ, qui est défini sur yes lorsqu'une alarme est définie.

4
Pierre-Antoine