使用bash脚本时出现以下问题。
以下是我在“创业公司”中所拥有的内容。脚本文件:
#!/bin/bash
java -cp ../lib/online-store.jar:../lib/* com.online.store.Main
OnlineStorePID=$!
if [$OnlineStorePID -ne 0] then
echo "kill $OnlineStorePID" > shutdown
fi
基本上我做的是运行java应用程序,获取进程id并将其写入另一个bash文件。当我执行启动脚本和“关闭”时,所有这一过程都有效。脚本文件使用包含' kill processIDNumber'的行成功更新。 CMD。
现在我尝试使用以下命令在Ubuntu上为此脚本创建服务:
sudo systemctl daemon-reload
sudo systemctl enable online-store.service
sudo systemctl start online-store
当我启动服务时,java应用程序成功启动,但关闭脚本文件未更新。似乎' echo" kill $ OnlineStorePID" >关机'行未执行。我没有得到任何抱怨错误。有谁知道这里的问题是什么。
这是我的服务文件:
[Unit]
Description=Online store service
Requires=multi-user.target
After=multi-user.target
Wants=mysql.service
[Service]
WorkingDirectory=/home/user/Desktop/online-store-service
#path to executable.
ExecStart=/home/user/Desktop/online-store-service/bin/startup
ExecStop=/home/user/Desktop/online-store-service/bin/shutdown
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
答案 0 :(得分:0)
更改脚本并像以下一样运行java命令作为后台进程
java -cp ../lib/online-store.jar:../lib/* com.online.store.Main >/dev/null 2>&1 &