一、services服务脚本编写
sudo nano /etc/systemd/system/ads.service
[Unit]
Description=Ads Service
After=network.target
[Service]
Type=simple
ExecStart=/home/jp/ads/EC-plat.sh
StandardOutput=file:/home/jp/ads/log/output.log
StandardError=file:/home/jp/ads/error/log/output.log
WorkingDirectory=/home/jp/ads
User=jp
Environment=APP_HOME=/home/jp/ads
Environment=CLASSPATH=$APP_HOME:$CLASSPATH
Environment=JAVA_HOME=/home/jp/ads/jdk17
[Install]
WantedBy=multi-user.target
以下是文件各部分的解释:
-
[Unit]
部分:Description=ads service
:描述了服务的简要说明。After=network.target
:指定了服务应该在network.target
启动之后启动,确保网络可用。
-
[Service]
部分:Type=simple
:指定了服务的类型为simple
,表示这是一个基本的、非守护进程式的服务。ExecStart=/home/jp/ads/EC-plat服务启动.sh
:指定了服务启动时要执行的脚本的路径,这是你的Java服务脚本。Restart=always
:指定了服务在终止后应该自动重新启动,以确保服务持续运行。User=jp
:指定了服务应该以jp
用户的身份运行。
-
[Install]
部分:WantedBy=multi-user.target
:指定了服务应该由multi-user.target
启动,这是多用户模式的目标。
sudo systemctl daemon-reload
sudo systemctl enable ads
sudo systemctl start ads
sudo systemctl status ads
sudo systemctl stop ads
sudo systemctl restart ads
二、服务启动失败解决方案:
journalctl -u ads.service
sudo systemctl restart ads.service
三、服务日志清理
sudo journalctl -u ads --vacuum-files=1M
sudo journalctl --vacuum-time=7d
sudo journalctl --vacuum-size=100M
sudo journalctl --vacuum-files=10