[TOC] ## go代码 <details> <summary>webapp.go</summary> ``` package main import ( "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello word")) }) e := http.ListenAndServe(":9080", nil) if e != nil { panic(e) } } ``` </details> <br/> ``` set goos=linux go build webapp.app ``` ## 配置 systemctl <details> <summary>webapp.service</summary> ``` [Unit] # 单元描述 Description=web APP # 在什么服务启动之后再执行本程序 #After=mysql.service [Service] Type=simple # 程序执行的目录 WorkingDirectory=/root/sys/ # 启动的脚本命令 ExecStart=/root/sys/webapp # 重启条件 Restart=on-abnormal # 几秒后重启 RestartSec=5 [Install] WantedBy=multi-user.target ``` </details> <br/> 1. 把 `webapp 添加可执行权限 chmod +x webapp` 1. 创建应用配置文件`/etc/systemd/system/webapp.service`, 内容如上; 2. 使用`systemctl daemon-reload`重新加载服务; 3. 执行`systemctl start webapp`来启动服务; 4. 最后执行`systemctl status webapp`来查看服务运行的状态信息; 5. 执行`systemctl enable webapp`将服务添加到开机启动项; > 测试:是否自动重启 `kill -9 pid` 几秒后再次查看服务 `systemctl status webapp` > 注意: 使用`pkill webapp` 杀死的服务器不会自启动 > 注意: 未启动状态下`restart` 依然可以启动 > 注意:执行的`webapp`是使用文件名作为服务名; > 常见的命令有:`start(启动), stop(停止), restart(重启), status(查看运行状态), enable(添加到开机启动项), disable(将程序从开机启动中移除)`