Capturer ou trouver une commande Le sujet est résolu

Demande d'aide : c'est ici.
Répondre
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 5054
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

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!
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 5054
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

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 ?
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5877
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors-ligne

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
Site Admin
Site Admin
Messages : 5054
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Salut,
piratebab a écrit : 11 janv. 2019, 15:46il 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.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
Mimoza
Contributeur
Contributeur
Messages : 655
Inscription : 22 avr. 2016, 12:00
Localisation : Terre
Status : Hors-ligne

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 : 5877
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors-ligne

ou d'espionner la liaison PC/onduleur avec un homme au milieu ....
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 5054
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Mimoza a écrit : 14 janv. 2019, 11:27Tout 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:35ou d'espionner la liaison PC/onduleur avec un homme au milieu ....
:003:
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 5054
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

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:
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5877
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors-ligne

Ma proposition n'était pas une blague ...
Regarde si wireshark arrive à intercepter la communication.
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

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
Site Admin
Site Admin
Messages : 5054
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Hello,
piratebab a écrit : 15 janv. 2019, 13:17Ma 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!
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5877
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors-ligne

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 : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

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
Site Admin
Site Admin
Messages : 5054
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

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:48whireshark 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.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Ça ne fonctionne pas:
Le but est quand même de pouvoir visualiser
quelle a été la commande et les options qui auraient pu être envoyées à shutdown par Viewpower.

Est-ce que, suite à une tentative d'arrêt de la machine par Viewpower
il n'y a rien dans le fichier /var/log/shutdownScript.log

Bien sûr, ce serait bien aussi que le script puisse réagir comme le lien,
mais bon, si on peut récupérer la commande qui a été envoyée, c'est quand même déjà ça,
ce n'est qu'une modification temporaire.
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 5877
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors-ligne

Ce qui complique la chose, c'est que ton logiciel client est en java. Pas certain qu'un strace truc.jar fonctionne.
Est ce qu'il existe des outils de débugs dans la JRE ?
Lancer la JRE avec un strace ?
Ou bien passer au JDK. Le java, c'est un domaine que je connais peu

JDK is a core component of Java Environment and provides all the tools, executables and binaries required to compile, debug and execute a Java Program
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 5054
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Salut,
MicP a écrit : 16 janv. 2019, 10:47
Ça ne fonctionne pas:
Le but est quand même de pouvoir visualiser
quelle a été la commande et les options qui auraient pu être envoyées à shutdown par Viewpower.

Désolé, j'ai été nul...
Mais malheureusement ça ne fonctionne pas plus en testant un reboot provoqué par ViewPower.
/var/log/shutdownScript.log n'existe pas et ma machine s'est arrêtée..
Ce n'est donc apparemment pas "shutdown" la commande d'arrêt...
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

…Ce n'est donc apparemment pas "shutdown" la commande d'arrêt...
Cool, ça avance, ça fait une commande de moins à tester.
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 5054
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

MicP a écrit : 16 janv. 2019, 16:19
…Ce n'est donc apparemment pas "shutdown" la commande d'arrêt...
Cool, ça avance, ça fait une commande de moins à tester.

Oui, c'est pas mal comme méthode, ça a le mérite de fonctionner...
Je' vais voir si je peut faire la même chose avec les autres.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Il y a aussi la possibilité d'arrêter et de de mettre hors tension une machine
en utilisant des messages **`snmp`**
Répondre