Je veux utiliser tint2 comme panneau dans une session Openbox.
Le fichier de configuration de tint2 est ~/.config/tint2/tint2rc. La teinte2 instructions de configuration a ceci:
Lorsque vous modifiez le fichier de configuration, la ligne de commande 'killall -SIGUSR1 tint2' forcera tint2 à le recharger.
Qu'est-ce que
killall -SIGUSR1
faire?
En d'autres termes, comment exécuter killall -SIGUSR1 tint2
provoque-t-il le rechargement de tint2rc
?
Edit: il apparaît que ~/.conkyrc peut être rechargé de la même manière. De man conky
:
Un moyen facile de forcer Conky à recharger votre ~/.conkyrc: "killall -SIGUSR1 conky". Vous évite d'avoir à tuer puis à redémarrer. Vous pouvez maintenant faire la même chose avec SIGHUP.
La commande kill
envoie vraiment un signal au processus ... c'est un peu mal nommé.
La commande
killall -SIGxxx name
enverra le "signal" xxx
au processus portant le nom "nom". Processus sous Unix peut recevoir et gérer un ensemble de signaux pour répondre à des événements externes. Par défaut, kill
envoie le signal SIGTERM qui a pour effet (prédéfini) de tuer en douceur le processus. (Le signal SIGKILL arrêtera le processus "brutalement", c’est la raison pour laquelle vous devez parfois utiliser la commande killall -SIGKILL ...
).
Certains processus ont une signification codée en dur (par exemple: HUP
est une déconnexion, etc.) et sont parfois envoyés par le noyau. USR1
et USR2
sont des signaux définissables par l'utilisateur.
Vous pouvez même le faire facilement dans les scripts: si vous mettez dans un script la ligne
trap "echo TRAPPED" USR1
le script imprimera "TRAPPED" lorsque vous lui enverrez le signal USR1 avec la commande kill.
Donc, la réponse à la dernière question est:
Evidemment, le programme "tint2" a un code qui, à la réception du signal USR1, rechargera son fichier de configuration.
Voir par exemple http://unixhelp.ed.ac.uk/CGI/man-cgi?signal+7