为什么服务--status-all没有列出这个正在运行的服务?

为什么服务--status-all没有列出这个正在运行的服务?

我完全不懂 Linux 系统管理(我是一名软件开发人员),并且我对服务有以下问题想问您。

Ubuntu 18.04.2 LTS机器上安装了一个软件即服务。我的意思是,我可以在 shell 中执行此语句来运行它:

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

它运行良好,我可以通过以下语句启动和停止服务:

sudo service wso2ei start

sudo service wso2ei stopt

因此这项服务运行良好...但是...我尝试通过以下声明列出所有服务:

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

所以我认为服务语句找到wso2ei某种方式提供服务。

我觉得我遗漏了一些东西......

答案1

根据手册页

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如果您想列出当前用户的单位而不是系统单位,请在这些命令中添加标志。

相关内容