[systemd] active(exited)

Bonjour,

Je suis nouveau sur debian et ça fait des heures que j’essaie de faire lancer au démarrage un service UPnP sans succès. J’ai essayé en root les “Type=simple/forking/oneshot” et les options mises en # ci-dessous sans succès.

Avec la config ci-dessous, il me dit que le service est active(exited).

config:

[Unit] 
Description=freemi 
 
[Service] 
Type=forking 
User=root 
ExecStart=/usr/bin/mono /etc/freemi/FreeMi.Console.exe 
RemainAfterExit=yes 
#TimeoutStopSec=20 
#KillMode=process 
#Restart=yes 
#RestartSec=20 
 
[Install] 
WantedBy=multi-user.target

message:

freemi.service - freemi

Loaded: loaded (/etc/systemd/system/freemi.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2018-03-17 10:31:45 CET; 7s ago
Process: 2837 ExecStart=/usr/bin/mono /etc/freemi/FreeMi.Console.exe (code=exited, status=0/SUCCESS)

mars 17 10:31:44 debian systemd[1]: Starting freemi…
mars 17 10:31:45 debian mono[2837]: Appuyez sur <Entrée> pour quitter
mars 17 10:31:45 debian systemd[1]: Started freemi.

L’execution de ton service semble attendre une interaction, c’est peut être ça qui bloque ?
Quand tu lances toi même à la main /usr/bin/mono /etc/freemi/FreeMi.Console.exe il n’attendrait pas aussi une touche “entrée” au clavier (voir d’autres touches aprés)?

Effectivement ce service est en attente d’un retour chariot mais pour s’éteindre.
Tant qu’il ne le reçoit pas, je peux utiliser ce service via ma Freebox pour voir mes fichiers sur ma debian (UPnP).
Lancé manuellement, je n’ai aucun soucis mais via systemd, ça ne va pas.

Précision : le type = simple me semble le plus approprié car oneshot et forking ajoute une ligne pour dire qu’il a “exited”.
En type=simple, il ne donne pas cette info mais pourtant ne fonctionne pas également.

Le fait que le service attend un paramètre empêche le bon fonctionnement? il s’arrête automatiquement par manque d’argument?

Pas de solution?

Salut
As tu lu ça
https://doc.ubuntu-fr.org/freemi

Oui c’était mon point de départ. Lu et re-re-re-lu.
Je pense que c’était la précédente version de freemi qui est décrite car désormais pour Linux, le service est offert seulement par ligne de commande.

J’ai aussi cherché sur le net et lu plein de posts notamment sur stackoverflow. Et là j’essaie de lire des docs sur systemd pour mieux comprendre le fonctionnement et c’est difficile. Je comprends que certains regrettent init. Le principe est super mais les paramètres…

je ne comprends pas bien pourquoi tu veux utiliser un service systemd alors que les tutos passent par un simple lanceur dans les menus
http://freeaddons.free.fr/index.php?option=com_content&view=article&id=372:tutoriel-installation-freemiupnpmediaserver-20-linux&catid=51:tutoriel-freemiupnpmediaserver-20&Itemid=302

Lanceur que tu peux mettre en autostart à l’ouverture de session il suffit de mettre un fichier .desktop dans ton home dans .config/autostart

pour voir ce qui existe actuellement

ls -alrt ~/.config/autostart

il existe aussi des lanceurs globaux du systeme dans /etc/xdg/autostart

Punaise je rame mais c’est réussi, merci. J’ai cru que c’est systemd le service pour faire ce que je voulais faire et j’avais effectué toutes mes recherches avec ce mot clé. Jamais vu passé autostart ou .desktop.

Là j’ai galéré à faire apparaître alacarte en activant une option via mon gnome shell.
En fait je crois que ça sert à rien alacarte pour mon cas. Ou laors c’est pour créer le lanceur que je n’ai pas réussi à faire.

Bref, j’ai créé mon .desktop dans /etc/xdg/autostart et c’est bon.

[Desktop Entry]
Name=freemi
Type=Application
Exec=/usr/bin/mono /etc/freemi/FreeMi.Console.exe
Terminal=true

Merci bcp !

NB: le gui freemi ne se lance pas. Problème connu et sur la page d’ubuntu, sous gnome classic, il y a une solution pour l’afficher. Marche pas pour gnome shell.

une remarque, dans mes lanceurs ( exemple firefox), j’ai toujours mis

Terminal=false

true ça veut dire que tu forces l’exécution dans une fenêtre terminal, est-ce utile dans ton cas?

https://developer.gnome.org/integration-guide/stable/desktop-files.html.fr

exemple d’un logiciel installé en locale dans /opt avec un lanceur simple (pas en autostart) dsns ~/.local/share/applications

~/.local/share/applications$ cat 4kvideodownloader.desktop

[Desktop Entry]
Name=4K Video Downloader
GenericName=4K Video Downloader
Comment=Download online video
Exec=/opt/4kvideodownloader/usr/lib/4kvideodownloader/4kvideodownloader.sh
Terminal=false
Type=Application
Icon=/opt/4kvideodownloader/usr/share/icons/4kvideodownloader.png
Categories=Network;Qt;

NB
dans gnome-shell, pour trouver un lanceur, on appuit sur la touche “drapeau windowss” ce qui fait apparaitre la zone de recherche. en mettant une chaine de caracteres les lanceurs correspondant sont affichés

exemple avec la lettre g

J’avais essayé de mettre “Terminal=false” pour tenter de ne pas voir le terminal se lancer mais, pour mon cas, ça ne marche pas. Obligé de mettre “Terminal=True”.

J’avais bien trouvé le lanceur via la touche “drapeau windows” mais j’ai pas compris à quoi m’a servi d’avoir installé alacarte. Si c’est pour créer automatiquement le lanceur, je n’ai pas trouvé comment.
En tout cas je me tate à laisser alacarte s’afficher en haut à gauche au lieu de “activités”.

j’utilise l’extension “Dash to Dock” pour avoir une barre de mes lanceurs favoris

https://extensions.gnome.org/extension/307/dash-to-dock/

et pour les icones dans la barre des taches
https://extensions.gnome.org/extension/1031/topicons/

Ce sont , pour moi, 2 extensions indispensables

Merci (again) ! Je vais tester ça ce soir.

Pour info, je vais p’tre chainer des commandes dans mon lanceur (ou créer un .sh) pour réussir à fermer le Terminal automatiquement sans killer le service en m’inspirant de ce post + exit.

aussi en utilisant nohup

nohup blabla & exit

http://lea-linux.org/documentations/Trucs:Laisser_tourner_un_processus_même_si_on_ferme_le_terminal

Je n’ai pas réussi à fermer le terminal sans fermer le processus.
Le “&” tue le lien vers la freebox pour le UPnP. Rien compris.

J’ai essayé de faire une seule ligne dans le .desktop avec bash - c + double ou simple quote sans succès. Avec ou sans &. Avec ou sans nohup. Avec ou sans disown.
Ex: Exec=bash -c “nohup /bin/mono /etc/freemi/FreeMi.Console.exe & ; exit”

Puis j’ai tenté de faire ça dans un script freemi.sh. La commande “normale” fonctionne bien et dès que je met le & en bout de ligne (ou collé au dernière caractère), le lien UPnP ne fonctionne pas.
Ce FreeMi.Console.exe a eu raison de moi. C’est bon, j’abandonne.

Si un jour j’ai de nouveau le temps, je retenterai ça avec systemd comme dernière tentative mais comme ça fonctionne tout de même bien, je pense que ça ne sera pas de si tôt.

Sinon j’ai installé dash to dock que j’ai adopté !
Par contre, pas installé topicons car ce n’est plus maintenu depuis peu.

c’est vrai mais le topicon original existe toujours
https://extensions.gnome.org/extension/495/topicons/

Exact ! Autant pour moi :smiley:

“Au temps” !
Izondi que c’était comme ça que ça s’écrivait, hier à la télé…

j’ ai essayé

nohup vlc https://youtu.be/hL0sEdVJs3U& exit

vlc reste bien ouvert sur France24 et la fenetre terminal se ferme

idem avec une radio

nohup vlc http://direct.fipradio.fr/live/fip-webradio6.mp3& exit

c’est peut etre l’exécutable freemi qui supporte pas

“Au temps” !
Izondi que c’était comme ça que ça s’écrivait, hier à la télé…

En fait les 2 sont corrects.

c’est peut etre l’exécutable freemi qui supporte pas

C’est ce que je pense aussi.

avec un tampon

nohup vlc --network-caching=18000 http://direct.fipradio.fr/live/fip-webradio6.mp3& exit

NB
comme nohup écrit ses bavardages dans ~/nohup.out et que ça emcombre le disque j’ai fait

 ln -s /dev/null nohup.out