这是我第一次使用systemd,对某些事情有点不确定。
我设置了一个服务(用于在tomcat下运行geoserver):
[Unit]
Description=Geoserver
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/geoserver/bin/startup-optis.sh
ExecStop=/usr/local/geoserver/bin/shutdown-optis.sh
User=geoserver
[Install]
WantedBy=multi-user.target
启动脚本使用exec运行java/tomcat。从命令行启动服务似乎可以工作:
sudo systemctl start geoserver
然而,该命令在我按下ctrl-c之前不会返回,这对我来说似乎不正确。但是Java进程在此之后仍在运行,并正常工作。我不愿意重新启动计算机来测试它,以防这会在初始化期间造成问题,因为它是一台远程计算机,让别人解决会很麻烦。