阅读量:0
1.编写需要启动的项目路径以及简单配置
sudo nano /etc/systemd/system/go.service
#定义服务的元数据和依赖关系。 [Unit] #这是对服务的简短描述。 Description=My Go Service #network.target 是一个虚拟目标,它表示网络服务已经初始化完成。该指令告诉 systemd 在网络服务启动后再启动这个服务 After=network.target # 定义服务的具体行为和启动参数。 [Service] # 指定启动服务的可执行文件的路径。这里是 Go 程序的路径,该命令将被 systemd 执行以启动服务。 ExecStart=/opt/go/main # 指定服务运行时的工作目录。这是服务进程的当前工作目录,通常是可执行文件所在的目录或存放配置文件、数据文件的目录。 WorkingDirectory=/opt/go # 定义服务的重启策略。当服务进程退出时,无论是正常退出还是异常退出,自动重启服务 Restart=always # 定运行服务的用户 User=user # 定运行服务的用户组 Group=user # 务的标准输出(stdout)重定向到 systemd 日志管理系统 journald,可以通过 journalctl 查看。这有助于集中管理日志信息。 StandardOutput=journal # 将服务的标准错误输出(stderr)重定向到 journald,这也是为了方便查看错误日志和进行调试。 StandardError=journal # 定义服务在重启之前等待的秒数。如果服务因某种原因退出,systemd 在重新启动服务之前会等待 10 秒。这可以防止服务在遇到问题时频繁重启。 RestartSec=10 # 义了服务安装时的行为和目标。 [Install] # 定服务在 multi-user.target 目标下激活。multi-user.target 是一个标准的 systemd 目标,表示系统处于多用户模式(类似于传统的运行级别 3)。当系统进入# 目标时,服务将自动启动。这个设置确保服务在系统启动时自动运行。 WantedBy=multi-user.target
简单版本
[Unit] Description=My Go Service After=network.target [Service] # 自己写 启动的方式 ExecStart=/opt/go/main # 需要自己写 工作的路径 WorkingDirectory=/opt/go Restart=always [Install] WantedBy=multi-user.target
Ctrl + O 回车保存 Ctrl + X 退出
2.刷新配置文件
sudo systemctl daemon-reload
3.启动服务
sudo systemctl restart go.service
4.查看运行状态
sudo systemctl status go.service
user@LAPTOP-3MT4IFSU:/mnt/c/Users/123456$ sudo systemctl status go.service ● go.service - My Go Service Loaded: loaded (/etc/systemd/system/go.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2024-08-02 11:27:48 CST; 4h 20min ago Main PID: 211 (go)
5.设置开机自启动
sudo systemctl enable go.service
6.确认开机自启动
user@LAPTOP-3MT4IFSU:/mnt/c/Users/123456$ systemctl is-enabled wlk-analysis.service enabled
7.查看运行日志最后几行
sudo journalctl -u go.service -e
The end ~~~~