Capturer ou trouver une commande

Demande d'aide : c'est ici.
Message
Auteur
Avatar de l’utilisateur
lol
Membre hyper actif
Membre hyper actif
Messages : 2855
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Contact :
Status : En ligne

Capturer ou trouver une commande

#1 Messagepar lol » 11 janv. 2019, 09:48

Salut,

Je viens d'installer un logiciel de gestion d'onduleur (Viewpower pour Prolink): http://www.power-software-download.com/viewpower.html
C'est pas la joie, mais je n'ai que ça pour contrôler l'arrêt propre des machines et des onduleurs.

Le logiciel se présente sou forme de binaire qui installe un tomcat et un soft java qui manage l'onduleur et l'arrêt de la machine.
C'est là que se trouve mon problème: L'arrêt propre de la machine.

- Si l'arrêt est lancé par ViewPower, ça avorte et se bloque sur un signe moins (-) clignotant à l'écran: La machine ne s'arrête pas convenablement (elle répond toujours au ping mais on a plus accès à rien)

Syslog n'est pas très causant... Pas plus que les logs de l'application...

Code : Tout sélectionner

[2019-01-11 11:46:04]Command:QS-----Return value:#l^A i l^A i ^@ b^` (^B^RÐ ê ^^        
[2019-01-11 11:46:05]----search--USB--Port ID array:usbdev1
[2019-01-11 11:46:06]----search--COM--Port ID:gnu.io.CommPortIdentifier@597608f9
[2019-01-11 11:46:07]Command:M-----Exception: Receive time out!
[2019-01-11 11:46:08]Command:M-----Exception: Receive time out!
[2019-01-11 11:46:08]Command:M-----Return value:P
- Si j'exécute moi-même un shutdown -h now, le serveur s'arrête proprement.

Je souhaite donc trouver la commande et modifier le fichier pour que l'arrêt soit propre. Mais je ne trouve pas...
C'est une Stretch à jour.


Vos idées sont les bienvenues!
Debian SID. XFCE.
C'est curieux chez les marins ce besoin de faire des phrases (Les tontons flingueurs).
Pas de support par message privé... Merci!

Avatar de l’utilisateur
lol
Membre hyper actif
Membre hyper actif
Messages : 2855
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Contact :
Status : En ligne

Re: Capturer ou trouver une commande

#2 Messagepar lol » 11 janv. 2019, 15:29

Hello,

Voici un extrait de syslog au moment de l'extinction:

Code : Tout sélectionner

Jan 11 17:02:01 nux CRON[9973]: (root) CMD (/usr/local/ispconfig/server/cron.sh 2>&1 | while read line; do echo `/bin/date` "$line" >> /var/log/isp$
Jan 11 17:02:29 nux systemd[1]: Started Run anacron jobs.
Jan 11 17:02:29 nux anacron[10004]: Anacron 2.3 started on 2019-01-11
Jan 11 17:02:29 nux anacron[10004]: Normal exit (0 jobs run)
Jan 11 17:02:29 nux systemd[1]: anacron.timer: Adding 22.015257s random time.
Jan 11 17:02:32 nux systemd[1]: Stopping Anonymizing overlay network for TCP...
Jan 11 17:02:32 nux systemd[1]: Stopped target Sound Card.
Jan 11 17:02:32 nux systemd[2352]: Stopped target Default.
Jan 11 17:02:32 nux gpg-agent[2440]: SIGTERM received - shutting down ...
Jan 11 17:02:32 nux systemd[2352]: Stopping D-Bus User Message Bus...
Jan 11 17:02:32 nux systemd[2352]: Stopping Virtual filesystem service - GNOME Online Accounts monitor...
...
A part le gpg-agent[2440]: SIGTERM received - shutting down ... je ne vois rien qui m'aide à trouver la commande précise.
A moins que je ne soit miro ?
Debian SID. XFCE.
C'est curieux chez les marins ce besoin de faire des phrases (Les tontons flingueurs).
Pas de support par message privé... Merci!

Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 2662
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Re: Capturer ou trouver une commande

#3 Messagepar piratebab » 11 janv. 2019, 15:46

il me semble que tu as des logs de systemd plus complet que ceux remontés au niveau systeme qui pourrons te donner plus de détails sur Stopping Virtual filesystem service qui à l'air de coincer

Avatar de l’utilisateur
lol
Membre hyper actif
Membre hyper actif
Messages : 2855
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Contact :
Status : En ligne

Re: Capturer ou trouver une commande

#4 Messagepar lol » 12 janv. 2019, 06:19

Salut,
piratebab a écrit :
11 janv. 2019, 15:46
il me semble que tu as des logs de systemd plus complet que ceux remontés au niveau systeme qui pourrons te donner plus de détails sur Stopping Virtual filesystem service qui à l'air de coincer

Pour systemd tu as probablement raison, je regarderais lundi.
Ce n'est pas Stopping VFS qui coince (je n'ai pas mis tous les logs...)

En fait je ne cherche pas ou ça bloque, mais quelle commande est utilisée pour arrêter la machine et comment elle est lancée.
Debian SID. XFCE.
C'est curieux chez les marins ce besoin de faire des phrases (Les tontons flingueurs).
Pas de support par message privé... Merci!

Avatar de l’utilisateur
Mimoza
Contributeur
Contributeur
Messages : 637
Inscription : 22 avr. 2016, 12:00
Localisation : Terre
Status : Hors-ligne

Re: Capturer ou trouver une commande

#5 Messagepar Mimoza » 14 janv. 2019, 11:27

Tout porte a croire que c'est le logiciel de gestion de l'onduleur qui envoie une mauvaise commande. Si tu ne peux pas lui faire cracher plus de log que ça je te conseillerais de regarder du coté de «strace» pour voir ce qui se passe.

Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 2662
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Re: Capturer ou trouver une commande

#6 Messagepar piratebab » 14 janv. 2019, 11:35

ou d'espionner la liaison PC/onduleur avec un homme au milieu ....

Avatar de l’utilisateur
lol
Membre hyper actif
Membre hyper actif
Messages : 2855
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Contact :
Status : En ligne

Re: Capturer ou trouver une commande

#7 Messagepar lol » 14 janv. 2019, 15:06

Mimoza a écrit :
14 janv. 2019, 11:27
Tout porte a croire que c'est le logiciel de gestion de l'onduleur qui envoie une mauvaise commande. Si tu ne peux pas lui faire cracher plus de log que ça je te conseillerais de regarder du coté de «strace» pour voir ce qui se passe.
Ha oui, bonne idée!
Je regarde ça, merci.
piratebab a écrit :
14 janv. 2019, 11:35
ou d'espionner la liaison PC/onduleur avec un homme au milieu ....
:003:
Debian SID. XFCE.
C'est curieux chez les marins ce besoin de faire des phrases (Les tontons flingueurs).
Pas de support par message privé... Merci!

Avatar de l’utilisateur
lol
Membre hyper actif
Membre hyper actif
Messages : 2855
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Contact :
Status : En ligne

Re: Capturer ou trouver une commande

#8 Messagepar lol » 15 janv. 2019, 11:58

Bon...
Pas sur de bien me servir de strace...

Code : Tout sélectionner

# ps -aux | grep java
root       666  1.7  1.1 4751268 96096 ?       Sl   07:48   4:26 /opt/ViewPower2.14/jre/bin/java com.zerog.lax.LAX //./opt/ViewPower2.14/StartMain.lax /tmp/env.properties.666
root      1533  0.4  1.8 4601768 148852 ?      Sl   07:49   1:09 /opt/ViewPower2.14/jdk/bin/java -Djava.util.logging.config.file=/opt/ViewPower2.14/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/ViewPower2.14/tomcat/endorsed -classpath /opt/ViewPower2.14/tomcat/bin/bootstrap.jar:/opt/ViewPower2.14/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/opt/ViewPower2.14/tomcat -Dcatalina.home=/opt/ViewPower2.14/tomcat -Djava.io.tmpdir=/opt/ViewPower2.14/tomcat/temp org.apache.catalina.startup.Bootstrap start

Code : Tout sélectionner

# strace -p 666
strace: Process 666 attached
futex(0x7feaebbbf9d0, FUTEX_WAIT, 1142, NULL
) = ?
strace: wait4(__WALL): No child processes
strace: Process 666 detached
[12:11:59 root@dev ~]# 
[12:11:59 root@dev ~]# Connection to 10.11.12.253 closed by remote host.
Connection to 10.11.12.253 closed.
Bref, j'avance pas des masse... :017: :003:
Debian SID. XFCE.
C'est curieux chez les marins ce besoin de faire des phrases (Les tontons flingueurs).
Pas de support par message privé... Merci!

Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 2662
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Re: Capturer ou trouver une commande

#9 Messagepar piratebab » 15 janv. 2019, 13:17

Ma proposition n'était pas une blague ...
Regarde si wireshark arrive à intercepter la communication.

MicP
Modérateur
Modérateur
Messages : 538
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Re: Capturer ou trouver une commande

#10 Messagepar MicP » 15 janv. 2019, 14:35

Bonjour

C'est sans doute la commande /sbin/shutdown qui est utilisée
mais avec des options qui sont maintenant devenues obsolètes.

Comme /sbin/shutdown est un lien vers la commande /bin/systemctl
il devrait être possible de vérifier quelles sont les options qui ont été données par ViewPower à ce lien
en remplaçant temporairement le lien /sbin/shutdown par un script qui
sauvegardera dans le fichier /var/log/shutdownScript.log les options qui lui ont été données
et lancera ensuite la commande /bin/systemctl avec les options qui avaient été données au lien /sbin/shutdown

Le contenu du script /sbin/shutdown serait alors :

Code : Tout sélectionner

#!/bin/sh

fichlog="/var/log/shutdownScript.log"
dt="$(date)"

echo "$dt : $0 $@" >> "$fichlog"

/bin/systemctl $@

Avatar de l’utilisateur
lol
Membre hyper actif
Membre hyper actif
Messages : 2855
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Contact :
Status : En ligne

Re: Capturer ou trouver une commande

#11 Messagepar lol » 15 janv. 2019, 16:01

Hello,
piratebab a écrit :
15 janv. 2019, 13:17
Ma proposition n'était pas une blague ...
Regarde si wireshark arrive à intercepter la communication.
Wireshark n'intercepte pas seulement les communications réseau?

MicP a écrit :
15 janv. 2019, 14:35
C'est sans doute la commande /sbin/shutdown qui est utilisée
mais avec des options qui sont maintenant devenues obsolètes.
Oui, c'est aussi ce que je pense.
Je vais tester ton idée, merci!
Debian SID. XFCE.
C'est curieux chez les marins ce besoin de faire des phrases (Les tontons flingueurs).
Pas de support par message privé... Merci!

Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 2662
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : En ligne

Re: Capturer ou trouver une commande

#12 Messagepar piratebab » 15 janv. 2019, 16:48

whireshark intercepte tout ce qui passe sur une interface réseau. Je supose que ton UPS est réliée en USB, donc ça peut étre une interface réseau (un /dev/ttyxxx par ex)

MicP
Modérateur
Modérateur
Messages : 538
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Re: Capturer ou trouver une commande

#13 Messagepar MicP » 15 janv. 2019, 17:22

Il est aussi possible que ce soit

le lien /sbin/poweroff qui soit utilisé

Code : Tout sélectionner

michel@debg53sw:~$ ls -l /sbin/poweroff
lrwxrwxrwx 1 root root 14 janv. 12 09:38 /sbin/poweroff -> /bin/systemctl
michel@debg53sw:~$ 

ou bien l'unité poweroff.target
Voir :

Code : Tout sélectionner

man systemd.special

Code : Tout sélectionner

…
       poweroff.target
           A special target unit for shutting down and powering off the system.

           Applications wanting to power off the system should start this unit.
…

ou que ce soit le signal SIGRTMIN+4 qui soit envoyé

Voir :

Code : Tout sélectionner

man init

Code : Tout sélectionner

…
       SIGRTMIN+4
           Powers off the machine, starts the poweroff.target unit. This is mostly equivalent to systemctl start
           poweroff.target.
…

ou bien un autre service…

=======
Il se peut aussi qu'il s'agisse, pour le compte utilisateur ou/et pour une session ouverte à distance,
d'un problème de limitation ou droit d'accès à la commande shutdown ou/et poweroff ou autre service
par SELinux ou par sudo.

=======
De toutes façons, je n'expose que quelques possibilités, mais comme le propose piratebab,
il sera sans doute plus édifiant de capturer et voir ce que contient le paquet
qui est envoyé par Viewpower pour tenter d'arrêter la machine.

Ce doit sans doute être possible simplement en utilisant une machine faisant tourner wireshark
qui serait connectée au réseau local par une interface réseau programmée en mode promiscuous
et une règle de capture des paquets qui utilisent le port de communication utilisé par le programme.

Avatar de l’utilisateur
lol
Membre hyper actif
Membre hyper actif
Messages : 2855
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Contact :
Status : En ligne

Re: Capturer ou trouver une commande

#14 Messagepar lol » 16 janv. 2019, 07:02

Salut,
MicP a écrit :
15 janv. 2019, 14:35

Code : Tout sélectionner

#!/bin/sh

fichlog="/var/log/shutdownScript.log"
dt="$(date)"

echo "$dt : $0 $@" >> "$fichlog"

/bin/systemctl $@

Ça ne fonctionne pas:

Code : Tout sélectionner

/sbin/shutdown -h now
systemctl [OPTIONS...] {COMMAND} ...

Query or send control commands to the systemd manager.

  -h --help           Show this help
...
MicP a écrit :
15 janv. 2019, 17:22
Il est aussi possible que ce soit ...
C'est bien ce qui me chagrine le nombre de possibilités... car ça ne facilite pas mes recherches!


piratebab a écrit :
15 janv. 2019, 16:48
whireshark intercepte tout ce qui passe sur une interface réseau. Je supose que ton UPS est réliée en USB, donc ça peut étre une interface réseau (un /dev/ttyxxx par ex)
Je vais regarder, mais je doute fort que l'onduleur soit "intelligent"... Je pense que la partie intelligente est côté PC et que le cable usb ne fait qu'envoyer des infos basiques.
Debian SID. XFCE.
C'est curieux chez les marins ce besoin de faire des phrases (Les tontons flingueurs).
Pas de support par message privé... Merci!


Qui est en ligne ?

Utilisateurs parcourant ce forum : Baidu [Spider] et 4 invités