Я являюсь абсолютным не в системное администрирование Linux (я - разработчик программного обеспечения), и у меня есть следующий вопрос для Вас о сервисах.
На машине LTS Ubuntu 18.04.2 там установлен программное обеспечение как сервис. Я подразумеваю, что могу выполнить его выполняющий этот statment в оболочке:
sudo service wso2ei start
и у меня есть сервисный конфигурационный файл в:
/etc/systemd/system/wso2ei.service
это содержит что-то вроде этого:
[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
это хорошо работает, и я могу запустить и остановить сервис следующим statments:
sudo service wso2ei start
и
sudo service wso2ei stopt
Таким образом, этот сервис хорошо работает..., но... Я пытался перечислить все сервисы этим stament:
service --status-all
Я ожидал находить, что мой wso2ei сервис в вывод перечисляет, но нет!!!
Это - мой вывод:
$ 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
$
Почему мой wso2ei не находится в этом списке? Что не так? Что я пропускаю?
Кроме того: если я проверяю состояние этого конкретного сервиса, я получаю этот вывод:
$ 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
Таким образом, я думаю, что сервис statment находит wso2ei сервис в некотором роде.
Я думаю, что пропускаю что-то...
Согласно странице справочника
service --status-all
шоу
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/
Там можете Вы видеть перечисленные сервисы от sysvinit системы.
Вы записали systemd единицу, они могут быть перечислены с:
systemctl list-units # for currently active units
systemctl -a list-units # for all known units
Добавьте --user
отметьте к этим командам, если Вы хотите перечислить единицы текущего пользователя вместо системных.