Télémaintenance sur un process lancé au démarrage

Vous avez réalisé ou vous voulez réaliser un truc impensable avec votre Raspberry Pi ? Cet endroit est pour vous...

Modérateur : Francois

Répondre
Fred26100
Messages : 3
Enregistré le : sam. 9 avr. 2016 18:39

Télémaintenance sur un process lancé au démarrage

Message par Fred26100 » dim. 10 avr. 2016 20:17

Bonjour à tous,

Tout d'abord Je ne suis pas un pro de bash / unix et merci pour votre aide. Voilà mon problème:

Je voudrais lancer un progrramme Python au démarrage du Pi. Pour cela j'ajoute dans crontab une ligne du style :
@reboot python /home/pi/monprogramme.py

Le programme tourne, mais pour des raison de maintenance je voudrais voir ce qu'il affiche (avec Putty en SSH) et intéragir avec lui au clavier.
Quelqu'un connait-il les commandes à taper pour y parvenir. En gros faire une sorte de télémaintenance sur ce process.
Je ne suis pas en environnement graphique, que de pur TTY.

J'ai vu que "ps -ef" me permet afficher le PID de mon programme, mais après ? car Google n'est plus mon ami à ce stade ;-)

Merci pour vos réponses

Avatar du membre
Manfraid
Raspinaute
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Télémaintenance sur un process lancé au démarrage

Message par Manfraid » lun. 11 avr. 2016 06:33

Dans ce cas ce que je peu te conseillé c'est de le lancer dans un tmux ou screen au lieu de directement comme ça quand tu te connecte tu y aura accès comme tu veux. Car de connaissance tu ne pourra jamais reprendre la main sur le processus de ton programme
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

mguyard
Messages : 1
Enregistré le : lun. 11 avr. 2016 13:31

Re: Télémaintenance sur un process lancé au démarrage

Message par mguyard » lun. 11 avr. 2016 13:32

Oui le screen me semble la meilleure solution si tu veux interagir avec.
Si tu veux juste voir ce qu'il se passe alors un fichier de logs bien rempli suffit


Envoyé de mon iPhone en utilisant Tapatalk

Fred26100
Messages : 3
Enregistré le : sam. 9 avr. 2016 18:39

Re: Télémaintenance sur un process lancé au démarrage

Message par Fred26100 » mar. 19 avr. 2016 16:36

Ok je vous remercie de vos réponses. Je vais m'y ateler.

Le_Marius
Messages : 39
Enregistré le : jeu. 14 avr. 2016 15:37

Re: Télémaintenance sur un process lancé au démarrage

Message par Le_Marius » ven. 29 avr. 2016 10:47

Bonjour,
Est-il possible de sauvegarder dans un fichier texte tout ce qui est affiché dans screen ?

exemple:
while :
do
cat screen... >> mon_fichier.txt
sleep 1
done

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Télémaintenance sur un process lancé au démarrage

Message par spourre » ven. 29 avr. 2016 12:57

Le_Marius a écrit :Bonjour,
Est-il possible de sauvegarder dans un fichier texte tout ce qui est affiché dans screen ?

exemple:
while :
do
cat screen... >> mon_fichier.txt
sleep 1
done
Bonjour,

Comme toujours avec UNIX (et donc Linux), la réponse est oui. Il y a même, très souvent, plusieurs chemins pour y arriver.
Il y a des fondamentaux à assimiler, je te l'avais déjà indiqué dans un autre topic. Les notions de fichiers, d'entrée/sortie standards et de redirection (le pipe et le > ou le >>) en font partie.
Comme je t'avais répondu dans un autre sujet, j'utilise minicom. Pour te répondre j'ai installé screen et ressorti mon vieux récepteur GPS (souris HOLLUX) qui envoie des trames MNEA sur le port USB.
Screen permet de lancer et de reprendre la main sur des process (comme si tu branchais un écran/clavier sur chacun d'eux, avec un commutateur). Il ouvre donc un shell qui permet de lancer des exécutables et récupère la sortie standard de ce programme..
Tu veux donc que le programme lancé par screen duplique sa sortie standard (qui sera récupérée et afficher par screen) et écrive aussi dans un fichier.
La commande tee est justement faite pour cela et peut, soit écraser le fichier de sortie, soit ajouter à la fin du fichier (un peu comme le >> que tu connais). Cela se fait avec l'option -a.

Pour résumer:
-) modifie ton script pour qu'il écrive aussi dans un fichier:
cat /dev/ttyUSB0 | tee -a nom-de_ton_fichier (la barre verticale est le symbole du pipe)

-) lance screen
-) dans le shell de screen, lance ton script.

l'avantage est que les données seront tout de même capturées, même si tu "branches" screen sur un autre process.

Nota: UNIX is user friendly mais il choisit ses amis ;-))))

Sylvain
CQFD

Le_Marius
Messages : 39
Enregistré le : jeu. 14 avr. 2016 15:37

Re: Télémaintenance sur un process lancé au démarrage

Message par Le_Marius » ven. 29 avr. 2016 14:40

Si je veux obtenir quelque chose de propre je ne peux passer que par screen (ttyUSB0 me donne des mauvais caractères)
du coups je balance le screen /dev/ttyUSB 1200.....
et j'aimerai combiner avec screen -X at 0 hardcopy /home/...

j'ai essayé avec tee mais aucun résultat

spourre
Raspinaute
Messages : 735
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: Télémaintenance sur un process lancé au démarrage

Message par spourre » ven. 29 avr. 2016 19:39

Le_Marius a écrit :Si je veux obtenir quelque chose de propre je ne peux passer que par screen (ttyUSB0 me donne des mauvais caractères)
du coups je balance le screen /dev/ttyUSB 1200.....
et j'aimerai combiner avec screen -X at 0 hardcopy /home/...

j'ai essayé avec tee mais aucun résultat
Comme déjà indiqué dans l'autre fil, si des caractères bizarres sont affichés, cela peut provenir:
- du capteur qui envoie des caractères non imprimable (octal par exemple);
- d'un mauvais réglages des paramétres du port série (vitesse, format du mot, bit de start, de stop, de parité, contrôle de flux matériel, logiciel, sans ...)
cela& se vérifie et se modifie avec la commande stty.
- du choix du jeu de caractères du terminal (historiquement l'ASCII mais, avec les environnements fenêtrés, il est courant de pouvoir choisir des jeux de caractères accentués).

C'est pour cela que je t'ai demandé, sans obtenir de réponse précise (secret défense ???), quel était ce fameux capteur branché sur le port USB. Quelle trame génère-t-il ?

Quant au tee, je ne sais pas où tu l'as placé. Chaque fois que je te fais une réponse, je teste pour vérifier et te donne le code de la commande et le résultat.
Je crains de ne pas pouvoir t'aider davantage, ne pouvant reproduire le comportement de ce capteur.
Bon courage

Sylvain

Le_Marius
Messages : 39
Enregistré le : jeu. 14 avr. 2016 15:37

Re: Télémaintenance sur un process lancé au démarrage

Message par Le_Marius » mar. 3 mai 2016 10:59

Bonjour,
Je vous remercie encore pour votre aide précieuse.
Désolé mais je ne pas donner plus d'information sur l'appareil.

Le script fonctionne enfin :

# paramétrage de la voie ttyUSB0
(
stty 1200
stty cs7
stty parenb
stty -parodd
)</dev/ttyUSB0> dev/ttyUSB0

echo "debut"
while True;
echo "while"
do
cat /dev/ttyUSB0 >>/home/pi/Desktop/buffer.txt
done

Ce programme fonctionne mais j'ai remarqué que pour pouvoir lire le fichier avec l'éditeur de texte , je dois ouvrir le fichier sur libreoffice writter et ensuite le sauvegarder en tant que .txt
une fois cette opération manuelle faite, j'utilise la commande sed pour supprimer les # (qui sont ici les caractères posant problème)

Je ne comprends pas pourquoi il faut passer par libreoffice pour pouvoir le lire ensuite sur l'éditeur de texte.
Si cette opération n'est pas faite, le fichier est vide quand on le lit avec l'éditeur de texte.

Est-il possible de remplacer ces commandes manuelles par un script ?
-ouverture du fichier avec libreoffice writter
-sauvegarde sous .txt (pas besoin de changer de nom)

Répondre

Retourner vers « Utilisateurs avancés »