Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/05/2015, à 15:07

Syrion

Exécuter un service init.d avec systemd

Bonjour,

j'ai uns script init.d pour gérer un serveur minecraft (forké de https://github.com/Ahtenus/minecraft-init) et un service Upstart qui lance un serveur Play 1.2.x pour gérer un mini-site et l'affichage de la carte du monde.

Depuis le passage à Ubuntu 15.04, ces deux services ne se lancent plus.

Pour le script upstart, je vais le convertir en systemd.

Mais pour le script init.d, la doc semble dire que systemd est compatible et qu'il va les lancer (ou au moins que

service nom-du-service start

marchera encore.
Malheureusement, systemd persiste à me dire :

Failed to start minecraft.service: Unit minecraft.service failed to load: No such file or directory.

Que faut-il faire pour faire fonctionner un script init.d que je ne veux pas convertir ? (en tous cas pas maintenant car il est trop gros, beaucoup de commandes)

Dernière modification par Syrion (Le 02/05/2015, à 15:07)


Ubuntu 22.04.4 amd64 sur Dell XPS 7590 15"
Ubuntu Server 20.04.4 Eeepc 1215P
Ubuntu 22.04.1 sur Ryzen 5 5600X, 32Go DDR4-3600, NVidia RTX 3060Ti

Hors ligne

#2 Le 02/05/2015, à 15:25

Gaara

Re : Exécuter un service init.d avec systemd

Salut,

Tu peux regarder quels services tu peux démarrer avec systemd:

systemctl list-unit-files

ensuite, pour démarrer un service

systemctl start <nom-du-service>.service

pour le stopper

systemctl stop <nom-du-service>.service

tu as aussi restart, statut, enable, disable...
Pour voir l'ensemble des services activés:

systemctl status

etc

Dernière modification par Gaara (Le 02/05/2015, à 15:26)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#3 Le 03/05/2015, à 01:14

Syrion

Re : Exécuter un service init.d avec systemd

Justement

systemctl list-unit-files

ne me liste pas minecraft alors qu'il marchait en 14.10 et qu'il n'a pas bougé de /etc/init.d :

lrwxrwxrwx 1 root root 32 avril 28 22:34 [1]  /etc/init.d/minecraft -> /home/mcuser/server/minecraft

Dernière modification par Syrion (Le 03/05/2015, à 01:15)


Ubuntu 22.04.4 amd64 sur Dell XPS 7590 15"
Ubuntu Server 20.04.4 Eeepc 1215P
Ubuntu 22.04.1 sur Ryzen 5 5600X, 32Go DDR4-3600, NVidia RTX 3060Ti

Hors ligne

#4 Le 03/05/2015, à 10:09

Gaara

Re : Exécuter un service init.d avec systemd

Tu as essayé ça ?

systemctl enable minecraft.service

Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#5 Le 03/05/2015, à 11:29

Gaara

Re : Exécuter un service init.d avec systemd

Si ça ne fonctionne pas il faut le créer.

1) Crée un script pour lancer ton serveur minecraft, tu le mets ou tu veux, puis rends le exécutable
2) Crée un service dans /etc/systemd/system/ nommé minecraft.service par ex
(regarde une piste ici, car je ne sais pas trop comment faire)
Mais je sais qu'il faut dans ce fichier:

[Unit]
Description=description du service

[Service]
User=syrion
Environment=DISPLAY=:0 # si c'est une application graphique, ou les variables d'env en général
ExecStartPre= commande lancée avant (si besoin)
ExecStart=/chemin/de/ton/script, ou directement une ligne de commande
ExecStop= commande pour stopper le service

[Install]
WantedBy= # les services qui sont dépendants de ce service

3) Ensuite, il faut activer le service avec la commande du post #4

Bon courage XD

Dernière modification par Gaara (Le 03/05/2015, à 11:34)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#6 Le 03/05/2015, à 13:25

Syrion

Re : Exécuter un service init.d avec systemd

Merci Gaara pour ces indications, mais l'objet n'est pas de créer un script de démarrage pour Minecraft à transformer en en service systemd, mais comme écrit plus haut 1) de comprendre pourquoi un script ini.d existant et qui fonctionnait, ne fonctionne plus, et 2) de le faire fonctionner dans systemd qui prétend être compatible et pouvoir faire démarrer les ini.d (contrairement aux upstart qu'il faut convertir).

Mon script ini.d Minecraft est un script init.d avec commandes start/stop/restart mais si beaucoup d'autres. C'est pour ça que je cherche à le faire fonctionner comme garanti par systemd qui permet dans ce cas de continuer à l'appeler avec service (ou indifféremment avec systemctl).


Ubuntu 22.04.4 amd64 sur Dell XPS 7590 15"
Ubuntu Server 20.04.4 Eeepc 1215P
Ubuntu 22.04.1 sur Ryzen 5 5600X, 32Go DDR4-3600, NVidia RTX 3060Ti

Hors ligne

#7 Le 03/05/2015, à 13:49

Gaara

Re : Exécuter un service init.d avec systemd

Oui c'est vrai tu as raison, normalement init.d est pris en charge par systemd.
Ben là je ne sais pas... Je passe la main tongue


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#8 Le 03/05/2015, à 17:00

Syrion

Re : Exécuter un service init.d avec systemd

Pour info,

systemctl enable minecraft.service

me donne :

Synchronizing state for minecraft.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d minecraft defaults
insserv: fopen(K01minecraft): Permission denied
update-rc.d: error: insserv rejected the script header

Et avec un sudo, ce n'est guerre mieux :

Synchronizing state for minecraft.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d minecraft defaults
Executing /usr/sbin/update-rc.d minecraft enable
Failed to execute operation: No such file or directory

Dernière modification par Syrion (Le 03/05/2015, à 17:09)


Ubuntu 22.04.4 amd64 sur Dell XPS 7590 15"
Ubuntu Server 20.04.4 Eeepc 1215P
Ubuntu 22.04.1 sur Ryzen 5 5600X, 32Go DDR4-3600, NVidia RTX 3060Ti

Hors ligne

#9 Le 03/05/2015, à 17:11

Gaara

Re : Exécuter un service init.d avec systemd

C'est pas le header, enfin je pense pas, c'est plutot la ligne du dessus: Permission denied
Le service a été créé, mais il faut le modifier. (user, var d'environnement ptet)
Que renvoie

ls -a /etc/systemd/system

Edit: de toutes façons systemctl demande le mot de passe, qu'il y ait sudo ou pas
et donne aussi

ls -a /etc/systemd/user

En fait il faut chercher minecraft.service, ou son équivalent. (ça peut-être un lien symbolique)

Dernière modification par Gaara (Le 03/05/2015, à 17:17)


Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid

                                        <code>zenity  --question --title "Alert"  --text "Microsoft Windows has been found! Would you like to remove it?"</code>

Hors ligne

#10 Le 17/05/2015, à 20:40

Syrion

Re : Exécuter un service init.d avec systemd

Gaara a écrit :

C'est pas le header, enfin je pense pas, c'est plutot la ligne du dessus: Permission denied
Le service a été créé, mais il faut le modifier. (user, var d'environnement ptet)
Que renvoie

ls -a /etc/systemd/system
.                                           display-manager.service        network-online.target.wants  shutdown.target.wants
..                                          display-manager.service.wants  paths.target.wants           sockets.target.wants
bluetooth.target.wants                      getty.target.wants             plymouth-log.service         sshd.service
dbus-org.bluez.service                      graphical.target.wants         plymouth.service             suspend.target.wants
dbus-org.freedesktop.Avahi.service          halt.target.wants              portmap.service              sysinit.target.wants
dbus-org.freedesktop.ModemManager1.service  hibernate.target.wants         poweroff.target.wants        syslog.service
dbus-org.freedesktop.nm-dispatcher.service  hybrid-sleep.target.wants      printer.target.wants
dbus-org.freedesktop.thermald.service       kexec.target.wants             reboot.target.wants
default.target.wants                        multi-user.target.wants        remote-fs.target.wants
Gaara a écrit :

Edit: de toutes façons systemctl demande le mot de passe, qu'il y ait sudo ou pas
et donne aussi

ls -a /etc/systemd/user

En fait il faut chercher minecraft.service, ou son équivalent. (ça peut-être un lien symbolique)

Cette dernière commande ne donne rien.

Encore une fois, "minecraft", le service init.d est bien présent dans le dossier /etc/init.d à travers un lien symbolique vers /home/minecraft/server/minecraft.

Donc je ne sais pas ce qu'il manque.


Ubuntu 22.04.4 amd64 sur Dell XPS 7590 15"
Ubuntu Server 20.04.4 Eeepc 1215P
Ubuntu 22.04.1 sur Ryzen 5 5600X, 32Go DDR4-3600, NVidia RTX 3060Ti

Hors ligne