Linux Systemd 管理java服务
systemd 是现代 Linux 发行版中用于初始化系统并管理服务的主要工具。通过创建一个 .service 文件来定义您的 Java 应用程序服务。
步骤:
1、创建一个服务单元文件,例如 /etc/systemd/system/my-java-app.service
文件放在linux/etc/systemd/system/目录下,文本内容如下:
[Unit]
Description=MY-JAVA-SERVICE
After=syslog.target network.target[Service]
User=root
WorkingDirectory=/path/
ExecStart=/usr/bin/java -Xms2g -Xmx3g -jar /path/my-java-app.jar
SuccessExitStatus=143
Restart=on-failure
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=%n[Install]
WantedBy=multi-user.target
2、刷新 systemd 配置:sudo systemctl daemon-reload
3、启动服务:sudo systemctl start my-java-app
相关命令:
# 重载 systemd 配置
sudo systemctl daemon-reload# 启动服务
sudo systemctl start my-java-app# 停止服务
sudo systemctl stop my-java-app# 设置开机自启
sudo systemctl enable my-java-app# 查看状态
sudo systemctl status my-java-app# 查看日志
journalctl -u my-java-app -f
使用 journalctl -u my-java-app -f 命令可以实时查看指定服务的日志输出(类似于 tail -f 对文件的操作)。当你想要退出这个实时查看模式时,可以按照以下步骤操作:如何退出
•快捷键:在终端中按 Ctrl+C 可以中断当前正在执行的命令,包括 journalctl 的实时跟踪。这将停止日志的实时显示并返回到命令提示符。
其他有用的 journalctl 命令选项虽然不直接与退出有关,但了解这些选项可以帮助更有效地查看日志:
•查看特定时间段的日志:你可以使用 -S 和 -U 参数来指定开始和结束时间,例如 journalctl -u my-java-app -S "2023-05-22 14:00:00" -U "2023-05-22 15:00:00"。
•查看最近的日志:如果你只是想查看最新的日志条目而不是持续监控,可以省略 -f 参数,即 journalctl -u my-java-app。默认情况下,它会列出所有相关日志,最后显示最新的条目。
•分页查看:如果日志量很大,可以直接运行 journalctl -u my-java-app,然后使用方向键滚动浏览,或者配合 less 使用(实际上 journalctl 默认就是用 less 来分页的),按 q 键退出查看。
通过这些方法,您可以更加灵活地管理和查看系统服务日志。