vince Le 06/09/2021 à 22:59 J'ai un soft qui se lance avec un jar, en mode terminal comme ça :
java -jar programme.1.0.jar &
comment je lui indique de s'arrêter (c'est un service, y'a pas d'UI pour l'arrêter) sans être obligé de le kill ? (si je le kill après j'ai des fichiers locks à effacer avant de pouvoir relancer).
y'a un moyen d'envoyer CTRL+C à un programme java lancé comme ça ?
SCPCD Le 07/09/2021 à 10:30 Je ne sais pas.
J'aurai tendance a dire qu'il y a pas d'autres solution qu'un kill en espérant que passer en paramètre un signal est pris en compte :/
C'est sous init.d ou systemd ?
Jonas Le 07/09/2021 à 11:44 Et puis sinon la solution de la dernière chance c'est un script qui kill le process puis nettoie les fichiers sémaphore, ou bien encore un wrapper/launcher autour de ton exécutable java qui catchera les SIGxxx et fera le nettoyage des fichiers lui-même (ce qui revient au même qu'une solution à base de script).

"If you see strict DRM and copy protection that threatens the preservation of history, fight it: copy the work, keep it safe, and eventually share it so it never disappears. [...] no one living 500 years from now will judge your infringing deeds harshly when they can load up an ancient program and see it for themselves."
Benj Edwards - Why History Needs Software Piracy
- - -
Achat ou échange: topic de mes recherches
Meilleur smiley = #helico#
Obligatory XKCDC'est pareil avec un programme en C a vrai dire.
Apres la methode "propre" reste de faire dans l'ordre
SIGINT (l'équivalent du Ctrl+C) parceque le programme peux l'intercepter et quitter proprement
Si par quitté apres X secondes, on peux envoyer un SIGTERM, qui est un moyen de tuer un peu plus salement mais laisse pas trop le choix
Et si vraiment apres Y secondes on envois un SIGKILL qui la dit a l'OS, sort la bombe-H.
Et si apres ca il n'est toujours pas mort, on reboot la machine.
Le seul probleme avec tout ca c'est de recuperer le PID de l'app, il y a plusieurs apps dédié pour ca, mais j'ai pas le nom en tete.
TL;DR: SIGINT et SIGTERM peuvent etre recuperer par l'app (avec in signal handler) pour essayer de s'arreter proprement, SIGKILL l'OS ne laisse pas le choix.
Si apres un SIGKILL l'app est toujours la, elle est bloqué quelque part dans le code systeme, et n'est pas tuable, et souvent le seul moyen de recuperer c'est un reboot.

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.