欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

非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