Wall

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Communication entre utilisateurs connectés
Commande wall
Contexte Linux (tout système avec des utilisateurs connectés en shell)
Voir aussi Shutdown (diffuse un message wall avant extinction)

wall ("write all") diffuse un message à tous les terminaux des utilisateurs actuellement connectés sur la machine, ce qui en fait l'outil de base pour prévenir d'une maintenance, d'un redémarrage ou de toute interruption de service imminente.

Usage interactif

En mode interactif, on lance simplement wall sans argument, on tape le message puis on termine la saisie avec Ctrl-D (fin de fichier) :

wall
The system is coming down in ten minutes for unexpected maintenance.
Please log off soon in order to save your files.
# Ctrl-D pour envoyer

Le message est alors immédiatement diffusé à tous les terminaux ouverts, précédé d'un en-tête indiquant l'expéditeur, son terminal d'origine et l'heure d'envoi.

Usage via pipe ou redirection

Pour un message court ou un envoi scripté, wall accepte aussi son entrée via un pipe ou une redirection depuis un fichier, sans passer par la saisie interactive :

echo "Maintenance réseau dans 5 minutes, merci de vous déconnecter" | wall
wall < message.txt

Cette forme est pratique dans un script d'astreinte ou un cron, là où une saisie interactive avec Ctrl-D n'a pas de sens.

Lien avec shutdown

La commande shutdown appelle automatiquement wall en interne pour diffuser son message d'avertissement à tous les utilisateurs connectés avant de couper les services, ce qui explique pourquoi un message passé en argument de shutdown apparaît sur tous les terminaux de la même façon qu'un wall manuel.

Pourquoi certains utilisateurs ne reçoivent pas le message

wall écrit directement sur le périphérique terminal de chaque utilisateur connecté, mais seulement si ce terminal accepte les écritures externes. Un utilisateur peut bloquer cette diffusion avec mesg n, qui interdit l'écriture sur son terminal par d'autres que le propriétaire ou root ; l'état inverse, mesg y, autorise à nouveau la réception :

mesg          # affiche l'état courant (is y / is n)
mesg n        # refuse les messages entrants (wall, talk...)
mesg y        # autorise à nouveau les messages entrants

En pratique, root reste presque toujours en mesure de forcer l'écriture même sur un terminal en mesg n, mais un utilisateur normal exécutant wall verra son message silencieusement ignoré sur les terminaux qui l'ont désactivé.

Voir aussi

  • Shutdown — diffuse automatiquement un message wall avant d'arrêter ou de redémarrer le système