web-dev-qa-db-fra.com

Comment exécuter un script bash après 20 secondes lors de la connexion?

Je veux exécuter un script bash comme:

#!/bin/bash          
echo 'cpu limit bomi player at 40%'
cpulimit -v -e bomi -l 40  

Juste 20 secondes après la connexion à mon utilisateur. Pouvez-vous m'aider s'il vous plaît à le faire? J'ai cherché sur Google et fait ce qu'ils ont dit mais cela n'a pas fonctionné pour moi.

S'il est possible que le script bash s'exécute dans une nouvelle fenêtre de terminal affichant le résultat, dites-moi ce que je dois faire pour atteindre cet objectif.

7
Mahdi

Une façon simple de le faire est d’ajouter ces lignes à rc.local dans votre système.

Pour cela, vous avez besoin des droits root ou sudo. Vous pouvez éditer le fichier avec votre éditeur de texte préféré, par exemple vim:

vim /etc/rc.local

(sleep 20
echo 'cpu limit bomi player at 40%'
cpulimit -v -e bomi -l 40) &

La première ligne indique à l'ordinateur d'attendre 20 secondes, les 2 autres lignes proviennent de votre script et le & à la fin indique à l'ordinateur de l'exécuter dans un sous-shell afin que votre ordinateur n'attende pas la fin de la fonction et continuer avec le démarrage.

Vous devriez ajouter ces lignes n'importe où avant l'appel exit 0 à la fin de ce script, car cela le ferait quitter et ignorer les lignes suivantes.

10
Bruno Pereira

Une autre suggestion consiste à créer un script bash exécutable. Permet de l'appeler onboot.sh et de l'enregistrer dans votre répertoire personnel

~/onboot.sh

#!/bin/bash
sleep 20      
echo 'cpu limit bomi player at 40%'
cpulimit -v -e bomi -l 40  

puis le rendre exécutable en exécutant cette commande

chmod +x ~/onboot.sh

puis ajoutez cette ligne à votre ~/.bashrc

~/onboot.sh &

Chaque fois que vous créez une nouvelle session de terminal, il exécutera ~/.bashrc qui exécutera ensuite votre fichier ~/onboot.sh.

EDIT: J'ai oublié de mentionner que cela ne fonctionnera que pour cet utilisateur particulier. pas pour tous les utilisateurs du système.

0
Rowan Hughes