Programmes simultannés

Bonjour. J’ai cherché sur le forum mais n’ai rien trouvé (peut-être trop ancien) cette question basique:

  • Peut-on faire tourner 2 programmes simultanément sur un PI 3 B+ ?

Merci par avance.
J2M

Bonjour, dans tous les respect, la question n’est pas posé car c’est élémentaire, oui tu peux exécuter plus d’un programme à la fois.

Cette question, sans précision, est vraiment au niveau de base, car tu exécute un système d’exploitation (OS) qui est multi-tâche par définition. La question ce poserais plus dans un système limité, comme un Pico, ou des puce programmable. Un RPi (Zero, 1, 2, 3, 4, 5) sont comme un mini ordinateur, ou un appareil mobile.


Mais après réflexion, je crois tu peux avoir mal formulé ta question, qui serais plus de savoir si tu peux lancer une application et qu’elle ne monopolise pas ta session SSH.

Soit de l’envoyer en « background », en arrière-plan.

SI c’est ça, il a plusieurs moyen, certains programme peuvent moins bien gérer l’une ou l’autre des méthodes.

  1. SCREEN : Avec sudo apt install screen, tu va ajouter un moyen de démarrer un programme dans un session virtuel. Il existe des commandes avancés mais ici je t’explique un exemple simple.

    En session de terminal, tu tape juste screen, et tu va ouvrir un terminal virtuel, ici tu peux lancer un programme, par exemple python3 monscript.py. Tu verra comme normalement l’exécution de ton script. Tu le laisse « rouler » et tu peux fermer l’écran, sans fermer la session et l’exécution du programme, en appuyant sur CTRL+A+D.

    Plus tard tu voudra revenir dans cette session virtuel, suffit d’exécuter screen -r.

    Note: Si tu démarre plusieurs « screen », tu devra gérer leur sessions car une liste sera créé, l’usage simple de « -r » ne va pas suffire. Consulte la documentation et l’aide de « screen » avec screen --help pour toutes les possibilités.

  2. & et /dev/null (plus technique) : Ceci est la méthode la plus habituel de rediriger les sorties « dans le vide ». Tu ajoute simple « > /dev/null 2>&1 » à la fin de la commande ou juste « & ». Par exemple;
    python3 monscript.py > /dev/null 2>&1
    python3 monscript.py &

    Note: Ceci est la version usuel sans programme externe, mais certaines applications peuvent envoyé sur d’autre « canal » les message, ce qui fait que dans ta session, tu peux voir des « echo » de message de cette application. Si tu es en SSH, habituellement en reconnexion les messages disparaisses de la visibilité. Tu peux remplacer « /dev/null » par un fichier log pour enregistrer, dans un fichier, les sorties redirigés.

  3. nohup : Si la méthode #2 marche mal, vous pouvez forcer avec « nohup », comme ceci; nohup python3 monscript.py. Lui aussi possède des paramètres, consultable avec nohup --help.

Bonsoir. Je te remercie pour tes explications, bien qu’encore un peu techniques pour moi.

Je vais regarder ça tranquillement et reviendrai vers ce post si besoin.

Bonne soirée.