Catégorie: Développement

Comment garder un script actif après déconnexion SSH?

Auteur(s) de l'article

Gilles
Gilles
Un mémo personnel, mais qui peut servir à d'autres.
Situation classique: tu te connectes en SSH sur un serveur distant pour lancer un script qui va tourner longtemps. Import de données, migration, traitement de fichiers, etc. Si tu fermes ton terminal ou que ta connexion coupe, le process meurt avec la session. Voici deux outils pour éviter ça.

nohup: la solution rapide

nohup est disponible sur pratiquement toutes les distributions Linux. Il lance un process en ignorant le signal de déconnexion (SIGHUP), ce qui lui permet de survivre à la fermeture de la session SSH.
Voici comment lancer votre script:
nohup ./bin/console app:import &
Le & à la fin lance le process en arrière-plan. Sans lui, ton shell serait bloqué jusqu'à la fin du script (ou un `Ctrl+C`). Avec, tu récupères la main immédiatement et le shell affiche le PID:
[1] 24651
Ce numéro te servira plus tard pour surveiller ou arrêter le process:
kill 24651
nohup empêche la mort à la déconnexion, & te rend la main. Les deux ensemble forment la combinaison standard.
C'est tout. Tu fermes ton terminal, le script continue. Tu peux revenir plus tard consulter le fichier de log.
Pour rediriger les logs:
nohup ./bin/console app:import > output.log 2>&1 &
Vérifier que ça tourne:
ps aux | grep app:import
Suivre les logs en direct:
tail -f output.log
La limite: tu ne peux pas reprendre la session. Pas d'interactivité, pas de terminal récupérable.

screen: la session persistante

screen est aussi présent sur la quasi-totalité des serveurs Linux. Il crée un terminal virtuel qui tourne indépendamment de ta connexion SSH. Tu peux t'y reconnecter plus tard comme si tu n'étais jamais parti.
Créer une session nommée:
screen -S import
Lancer ta commande dans la session:
./bin/console app:import
Pour détacher la session (la laisser tourner en fond), utilise la combinaison de touche Ctrl + A puis D.
Lister les sessions actives:
screen -ls
Revenir dans la session:
screen -r import
Quitter définitivement une session:
exit
Tu vois tout en direct quand tu es connecté, et la progression est toujours là quand tu reviens. C'est l'outil idéal pour surveiller un long processus ou débugger à distance.
Pour aller plus loin: tmux est le successeur moderne de screen, avec plus de fonctionnalités. Mais screen et nohup ont l'avantage d'être présents partout sans installation.

Continuer ma lecture

Auteur(s) de l'article

Akira
Akira

Making of : “La nuit des Losers”

Le site de « La Nuit des Losers », fait en un temps record : wireframes papier, animations testées en direct avec Claude Code, un flipper abandonné, un tableau de réactions un peu triché, et deux-trois bugs qu’on garde précieusement. Ce que l’IA a vraiment changé ici, et là où elle a calé.
Le site de « La Nuit des Losers », fait en un temps record : wireframes papier, animations testées en direct avec Claude Code, un flipper abandonné, un tableau de réactions un peu triché, et deux-trois bugs qu’on garde précieusement. Ce que l’IA a vraiment changé ici, et là où elle a calé.
Making of : “La nuit des Losers”

Auteur(s) de l'article

Pierre
Pierre

Dark mode : nécessité ou effet de mode

Nous faisons le tri entre idées reçues, réalités techniques et bonnes pratiques de design.
Nous faisons le tri entre idées reçues, réalités techniques et bonnes pratiques de design.
Dark mode : nécessité ou effet de mode

Auteur(s) de l'article

Susana
Susana

L’IA pour la gestion de projet

En tant que chef·fe de projet en agence web, on entend beaucoup parler de l’IA et de ce fameux Claude, réputé pour accompagner efficacement les développeur·euses dans leur quotidien. Mais \[…\]
En tant que chef·fe de projet en agence web, on entend beaucoup parler de l’IA et de ce fameux Claude, réputé pour accompagner efficacement les développeur·euses dans leur quotidien. Mais \[…\]
L’IA pour la gestion de projet