98 votes

Comment puis-je déclencher une notification lorsqu'un travail/processus se termine ?

L'endroit où je travaille a des commandes qui prennent beaucoup de temps à exécuter.

Existe-t-il une commande/un utilitaire que je peux utiliser pour m'avertir de la fin de l'exécution de la commande ? Il pourrait s'agir d'une fenêtre popup ou d'un petit son.

4voto

Ashutosh Jindal Points 661

Je viens de commencer à utiliser notifier pour les notifications de bureau de Cygwin. C'est une application de notification en ligne de commande pour Windows.

Exemple :

ls -l && /c/notifu-1.6/notifu64 /m "This is a simple Notifu message."

4voto

Thatkookooguy Points 151

Bien que d'autres réponses aient déjà couvert la plupart des moyens d'obtenir des notifications sur un travail terminé, je veux donner mon avis puisque vous avez posé votre question sous la forme suivante :

L'endroit où je travaille a des commandes qui prennent beaucoup de temps à exécuter.

J'ai le même problème. Parfois, quelque chose peut fonctionner pendant 15 minutes.

J'ai la fonction suivante dans mon .bashrc :

# push a notification to your phone. can be handy if you're running a
# build and you want to be notified when it's finished.
push() {
    curl -s -F "token=PUSHOVER_TOKEN" \
    -F "user=PUSHOVER_USER" \
    -F "title=terminal" \
    -F "message=$1" https://api.pushover.net/1/messages.json > /dev/null 2>&1
}

Il utilise l'application Pushover pour envoyer une notification sur mon téléphone. Ainsi, je peux aller déjeuner ou participer à une réunion tout en étant informé des travaux que j'ai lancés sur mon ordinateur avant de partir.

Je l'utilise de la manière suivante :

command_to_run && push "yes! command finished successfully!" || push "awww man! something failed :-("

Ainsi, si la commande renvoie un code de sortie correct, le premier push sera exécuté. En cas d'erreur, le second sera exécuté.

Bien sûr, vous devez créer un utilisateur chez Pushover, et enregistrer une application pour envoyer des notifications à partir du site de Pushover. https://pushover.net/

J'espère que cela vous a aidé !

3voto

shivams Points 1683

Pour Linux, il existe une astuce astucieuse qui permet de le faire automatiquement sans avoir à taper une commande de notification à chaque fois.

Installez d'abord autokey. Cela permet de définir des actions pour différentes frappes de touches.

sudo apt-get install autokey-gtk

Maintenant, définissez une nouvelle phrase dans autokey et assignez le raccourci clavier comme Alt+Enter. Ajoutez cette phrase :

; notify-send "Job finished!" &
  #

Notez qu'une nouvelle ligne après la première ligne est importante.

Ajoutez aussi un filtre de fenêtre. J'utilise guake et terminal. Incluez tout autre terminal que vous utilisez.

.*(guake)|(Terminal).*

Tu es fait !

Maintenant, chaque fois que vous avez besoin d'obtenir des notifications pour une commande, exécutez-la en utilisant Alt+Enter au lieu de Enter/Return.

Fuente: http://dotpad.blogspot.in/2014/12/notification-when-command-finished.html

1voto

Keith Thompson Points 4865

Si vous utilisez csh ou tcsh comme Shell interactif, vous pouvez utiliser la fonction notify commandement :

% long-running-command &
[1] 14431
% notify %1
% 
(later, when the command finishes)
[1]    Done                          long-running-command

Vous pouvez obtenir un effet similaire en bash avec set -b o set -o notify .

Cette solution ne répond probablement pas à vos besoins, car elle ne fait qu'imprimer un message ; je ne pense pas qu'elle puisse être configurée pour faire apparaître une fenêtre ou sonner la cloche.

1voto

Rohan Points 576

Sur les systèmes avec 'awk', essayez

awk 'BEGIN{ print "\a" }'

était le seul à fonctionner pour moi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X