Systemd 学习笔记
Unit 的配置文件
[Unit]
区块通常是配置文件的第一个区块,用来定义 Unit 的元数据,以及配置与其他 Unit 的关系[Install]
通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动[Service]
区块用来 Service 的配置,只有 Service 类型的 Unit 才有这个区块
Unit文件#
[Unit] # *描述 Description=Flask project # 项目文档 # Documentation=/home/python_env/code/flask_demo1/README.md # 项目启动时需要依赖的前置服务 # Before=network.target # *项目启动后需要依赖的后置服务 After=network.target # 项目启动时依赖的其他服务 # Requires: mysql.target [Service] # *启动方式,默认为simple,其他启动方式有forking、oneshot、notify、dbus、exec、idle Type = forking # 启动前执行 ExecStartPre =/bin/echo "flask_demo1 开始启动" # *启动项目 ExecStart=/home/python_env/venv/flask_demo/bin/python flask_demo1.py # 项目启动后执行 ExecStartPost =/bin/echo "flask_demo1 启动完成" # 项目停止时执行 ExecStop=/bin/echo "flask_demo1 停止" # *启动失败后重启(always:总是重启,on-success、on-failure、on-abnormal、on-abort、on-watchdog) Restart=always # *设置服务工作目录 WorkingDirectory=/home/python_env/code # 指定环境变量 # Environment=FLASK_APP=flask_demo1.py # 设置项目启动的用户 User=python_env # 设置项目启动的用户组 Group=python_env # 设置项目输出 # StandardOutput=syslog [Install] # 该参数表示此Unit是开机启动时候关联到multi-user.target # 当multi-user.target下面的任意一个Unit启动都会触发本Unit的启动 # 即enable状态的时候会创建一个链接到/etc/systemd/system/multi-user.target.wants/目录下面 WantedBy=multi-user.target
将上述内容写入
flask_demo1.service
,将该文件放入/usr/lib/systemd/system/
目录下,执行以下命令systemctl daemon-reload
,然后执行systemctl start flask_demo1.service
即可启动服务
常用systemctl命令#
启动服务#
systemctl start flask_demo1.service
停止服务#
systemctl stop flask_demo1.service
重启服务#
systemctl restart flask_demo1.service
查看服务状态#
systemctl status flask_demo1.service
查看服务日志#
journalctl -u flask_demo1.service
重载而不重启(用于重新加载 systemd 的守护进程配置,在修改service文件后需要执行)#
systemctl daemon-reload
重载而不重启(用于重新加载服务的配置)#
systemctl reload flask_demo1.service
普通用户执行(需要注意的是centos7执行失败,可能是systemd版本的问题)#
需要先在普通用户的模式下创建目录
~/.config/systemd/user/
systemctl --user start flask_demo1.service
本文来自博客园,作者:Jruing,转载请注明原文链接:https://www.cnblogs.com/jruing/p/18295183
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2023-07-10 Golang学习笔记-常量
2023-07-10 Golang学习笔记-变量
2020-07-10 AutoJS 实现QQ小游戏胡莱三国爬塔