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