Je ne suis absolument pas dans l'administration système Linux (je suis développeur de logiciels) et j'ai la question suivante pour vous sur les services.
Sur une machine buntu 18.04.2 LTS est installé un logiciel en tant que service. Je veux dire que je peux l'exécuter en effectuant cette déclaration dans le shell:
Sudo service wso2ei start
et j'ai le fichier de configuration du service dans:
/etc/systemd/system/wso2ei.service
qui contient quelque chose comme ceci:
[Unit]
Description=WSO2EI
After=syslog.target
After=network.target
[Service]
Type=simple
WorkingDirectory=/usr/lib/wso2/wso2ei/6.4.0
User=root
Group=nogroup
Environment=Java_HOME=/usr/lib/wso2/wso2ei/6.4.0/jdk/jdk1.8.0_192
Environment=CARBON_HOME=/usr/lib/wso2/wso2ei/6.4.0
StandardOutput=syslog
StandardError=syslog
ExecStart=/usr/lib/wso2/wso2ei/6.4.0/bin/integrator.sh
ExecStop=/usr/lib/wso2/wso2ei/6.4.0/integrator.sh stop
#TimeoutSec=130
[Install]
WantedBy=multi-user.target
cela fonctionne bien et je peux démarrer et arrêter le service par les instructions suivantes:
Sudo service wso2ei start
et
Sudo service wso2ei stopt
Donc, ce service fonctionne très bien ... mais ... J'ai essayé de lister tous les services par cet argument:
service --status-all
Je m'attendais à trouver mon service wso2ei dans la liste de sortie mais il n'y en a pas !!!
Voici ma sortie:
$ Sudo service --status-all
[ - ] acpid
[ + ] apparmor
[ + ] apport
[ + ] atd
[ + ] cntlm
[ - ] console-setup.sh
[ + ] cron
[ - ] cryptdisks
[ - ] cryptdisks-early
[ + ] dbus
[ + ] ebtables
[ + ] grub-common
[ - ] hwclock.sh
[ + ] irqbalance
[ + ] iscsid
[ - ] keyboard-setup.sh
[ + ] kmod
[ - ] lvm2
[ + ] lvm2-lvmetad
[ + ] lvm2-lvmpolld
[ + ] lxcfs
[ - ] lxd
[ - ] mdadm
[ - ] mdadm-waitidle
[ - ] ntp
[ - ] open-iscsi
[ - ] open-vm-tools
[ - ] plymouth
[ - ] plymouth-log
[ + ] procps
[ - ] rsync
[ + ] rsyslog
[ - ] screen-cleanup
[ + ] ssh
[ + ] udev
[ - ] ufw
[ + ] unattended-upgrades
[ - ] uuidd
$
Pourquoi mon wso2ei n'est pas dans cette liste? Qu'est-ce qui ne va pas? Qu'est-ce que je rate?
De plus: si je vérifie le statut de ce service particulier j'obtiens cette sortie:
$ Sudo service wso2ei status
● wso2ei.service - WSO2EI
Loaded: loaded (/etc/systemd/system/wso2ei.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-10-11 21:03:06 CEST; 1 day 22h ago
Process: 56854 ExecStop=/usr/lib/wso2/wso2ei/6.4.0/integrator.sh stop (code=exited, status=203/EXEC)
Main PID: 56912 (integrator.sh)
Tasks: 179 (limit: 9486)
CGroup: /system.slice/wso2ei.service
├─56912 /bin/sh /usr/lib/wso2/wso2ei/6.4.0/bin/integrator.sh
└─56958 /usr/lib/wso2/wso2ei/6.4.0/jdk/jdk1.8.0_192/bin/Java -Xbootclasspath/a: -Xms256m -Xmx1024m -XX:+HeapDumpOnOutOfMemoryError -X
Je pense donc que la déclaration service trouve le service wso2ei d'une manière ou d'une autre.
Je pense que je manque quelque chose ...
Selon la page de manuel
service --status-all
montre
service --status-all runs all init scripts, in alphabetical order, with the status command. The status is [ + ] for running services, [ - ] for stopped services and [ ? ] for services without a status command. This option only calls status for sysvinit jobs.
ls -al /etc/init.d/
Vous pouvez y voir les services répertoriés du système sysvinit.
Vous avez écrit une unité systemd, ils peuvent être listés avec:
systemctl list-units # for currently active units
systemctl -a list-units # for all known units
Ajouter le --user
marquez ces commandes si vous souhaitez répertorier les unités de l'utilisateur actuel au lieu de celles du système.