非docker环境下的fastapi开机启动
程序员文章站
2022-06-11 17:07:27
...
有个方式是用Supervisor托管fastapi,配置Supervisor开机启动,从而达到fastapi开机启动的目的。
但我只是想启动fastapi,能否不用Supervisor,当然是可以的。
假设fastapi项目的路径是/opt/fastapi
,则启动fastapi的命令可以是:
/usr/local/bin/uvicorn --app-dir /opt/fastapi main:app
那么把这条命令放到/etc/rc.local
中就可以开机启动了。
但这样又显得不是那么优雅,不如就用系统本身就提供了的systemctl
来做吧。
在目录/lib/systemd/system/
下新建一个文件fastapi-server.service
内容如下:
[Unit]
Description=fastapi server service
[Service]
ExecStart=/usr/local/bin/uvicorn --app-dir /opt/fastapi main:app
[Install]
WantedBy=multi-user.target
配置一下开机启动
systemctl enable fastapi-server
启动fastapi
systemctl start fastapi-server
配置完成,此时就可以通过systemctl
随时随地看fastapi的运行状态了。
$ systemctl status fastapi-server
● fastapi-server.service - gitee api service
Loaded: loaded (/lib/systemd/system/fastapi-server.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-10-19 15:11:02 CST; 17min ago
Main PID: 1047 (uvicorn)
Tasks: 5 (limit: 2122)
CGroup: /system.slice/fastapi-server.service
└─1047 /usr/bin/python3 /usr/local/bin/uvicorn --app-dir /opt/fastapi main:app