Qu'est-ce que Redirection des entrées-sorties ?

Dans le shell, changer la destination de l'entrée standard, de la sortie standard et de la sortie d'erreur standard d'une commande, pour utiliser un fichier ou autre chose au lieu de l'écran ou du clavier. > écrase un fichier, >> ajoute à sa fin, < fait d'un fichier l'entrée standard, et 2> envoie la sortie d'erreur standard (numéro 2) vers un fichier. 2>&1 dirige la sortie d'erreur standard là où va la sortie standard « à cet instant » : > file 2>&1 et 2>&1 > file donnent donc des résultats différents.

Nom japonais: 入出力のリダイレクト

« Redirection des entrées-sorties » apparaît dans 3 questions d'entraînement réparties sur 1 thèmes, dont Bases de Linux et de la ligne de commande.

Domaine: Bases de Linux et de la ligne de commande

S'entraîner : questions sur Redirection des entrées-sorties

Sur un serveur auquel on s'est connecté par SSH, on a lancé un long traitement avec « ./run.sh & », puis, en fermant la connexion, le traitement s'est arrêté lui aussi. Quelle est la manière la plus appropriée de le lancer pour qu'il continue après la fermeture de la connexion ?

  1. A./run.sh > run.log 2>&1 &
  2. Bnice -n 19 ./run.sh > run.log 2>&1 &
  3. Cnohup ./run.sh > run.log 2>&1 &
Afficher la réponse et l'explication

Réponse : C. nohup ./run.sh > run.log 2>&1 &

Quand la connexion est perdue, le signal SIGHUP, qui indique que le terminal a raccroché, est envoyé au shell, et les shells comme bash envoient eux aussi SIGHUP à leurs tâches. L'action par défaut à la réception de SIGHUP est de se terminer : les tâches en arrière-plan s'arrêtent donc aussi. nohup lance la commande de sorte qu'elle ignore SIGHUP, et si sa sortie est dirigée vers un fichier, le traitement continue après la fermeture de la connexion. Si on la lance depuis un terminal sans redirection de la sortie, nohup écrit la sortie dans un fichier nommé nohup.out. Une autre méthode courante consiste à utiliser un outil comme tmux ou screen, qui maintient la session de terminal sur le serveur et permet de s'y reconnecter plus tard.

« Redirection des entrées-sorties » dans les explications

Questions mentionnant « Redirection des entrées-sorties » (3)

  1. Si l'on exécute dans l'ordre les commandes ci-dessus, quel contenu affiche le dernier cat ?
  2. Comme ci-dessus, dans un répertoire où a.txt existe et nofile n'existe pas, on exécute la dernière commande. Quel est le résultat ?
  3. Sur un serveur auquel on s'est connecté par SSH, on a lancé un long traitement avec « ./run.sh & », puis, en fermant la connexion, le traitement s'est arrêté lui aussi. Quelle est la manière la plus appropriée de le lancer pour qu'il continue après la fermeture de la connexion ?

Termes associés

SSH Shell cron Expression régulière (regex) Git grep inode Lien physique (hard link) Lien symbolique (symlink) Permissions (droits d'accès)

Retour au glossaire