Question Calendrier pour éteindre le moniteur via crontab?


Je souhaite désactiver automatiquement le moniteur sur une période de temps spécifique (par exemple entre 7h00 et 11h00). Existe-t-il une commande à définir dans le fichier crontab? Y a-t-il une meilleure façon?


En résumé:

Éteindre le moniteur automatiquement à 07h00.

Allumer automatiquement le moniteur à 11h00.

  • l'écran de veille et l'écran de verrouillage sont désactivés!

2
2018-06-26 20:20


origine


Électeur (s) proche (s): La réponse est généralement applicable à d'autres personnes qui souhaitent quelque chose de similaire - même si le PO n'a jamais répondu en retour, cela ne devrait toujours pas être considéré comme non reproductible. (En outre, l'OP a dit qu'il faudrait environ un jour revenir et vérifier si la réponse a fonctionné.) S'il y a une autre raison de fermer cette réponse, je vous recommande de commenter. - Eliah Kagan
en relation Désactiver manuellement le moniteur - Zanna


Réponses:


En supposant que vous utilisez la valeur par défaut gnome-screensaver pour Ubuntu, ouvrez un Terminal et exécuter les commandes suivantes suivies d'instructions:

  1. mkdir -p bin - cette commande fera un bin répertoire dans votre home dossier si vous ne l'avez pas déjà.
  2. gedit ~/bin/screen_on_or_off.sh - cela va créer le nouveau fichier screen_on_or_off.sh en gedit.
  3. Copiez et collez le script suivant:

    #!/bin/bash
    
    export DISPLAY=:0 #very important if you want to be runned by a cron job
    
    current_hour=$(date +"%k")
    
    # Defining the disable_screensaver function
    function disable_screensaver {
        # Disabling sleep time
        # 0 value will never turn the screen off; you can change this value as you wish:
        # for example to turn the screen of after 10 min, use 600
        gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 0
        gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 0
        gsettings set org.gnome.desktop.session idle-delay 0
    }
    
    # Defining the enable_screensaver function
    function enable_screensaver {
        # Enabling sleep time to 1 second
        gsettings set org.gnome.settings-daemon.plugins.power sleep-display-ac 1
        gsettings set org.gnome.settings-daemon.plugins.power sleep-display-battery 1
        gsettings set org.gnome.desktop.session idle-delay 1
    
        notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Let's go to sleep now!"
    }
    
    if [ "$current_hour" -ge "7" ] && [ "$current_hour" -lt "11" ]; then
        enable_screensaver
    else
        disable_screensaver
    fi
    
    exit 0
    
  4. Enregistrez le fichier et fermez-le.

  5. Retournez dans le terminal et lancez: chmod +x screen_on_or_off.sh - accorder un accès d'exécution au script.
  6. Juste pour tester, pour exécuter votre nouveau script, tapez terminal ~/bin/screen_on_or_off.sh.
  7. Modifier les entrées crontab en utilisant crontab -e commande (par défaut, cela va modifier la crontab des utilisateurs connectés) et ajouter la ligne suivante:

    */1 * * * * /home/$USER/bin/screen_on_or_off.sh  #change $USER with your username
    

    J'ai défini le travail cron pour chaque minute, mais vous pouvez changer comme vous le souhaitez ou comme vous le pensez. Voir http://en.wikipedia.org/wiki/Cron dans ce sens.

  8. Enregistrez le fichier et vérifiez la nouvelle entrée crontab avec crontab -l.

Maintenant, votre écran s'éteindra tous les jours entre 7 et 11.


4
2018-06-26 23:29



J'ai désactivé gnome-screensaver et lock-screen, c'est la raison pour laquelle je veux éteindre le moniteur automatiquement par ligne de commande! Autre remarque: l'ordinateur est au travail, je suis en vacances maintenant; cependant, je vérifierai vos instructions demain et commenterai ici :) - mini