linux创建自定义服务部署项目

1.进入linux单元服务文件夹

cd /etc/systemd/system/

 2.创建一个文件以.service结尾的文件

C#(.Net Core)、 Java、Python等语言,都可以通过linux自定义服务来部署项目,实现守护进程、实现开机自启

 2.1例如创建my.service文件

这里以部署python项目为例,vi 创建my.service文件

vi my.service

2.2service文件写入内容

解释说明

  • [Unit] 部分
    • Description:这是服务的描述信息,用于在 Systemd 相关命令的输出中方便用户识别服务。
    • After:指定该服务在network.target之后启动,这意味着在网络初始化完成后,这个服务才会启动。可以根据服务的实际需求修改这个依赖关系。
  • [Service] 部分
    • Type:这里设置为simple,表示这是一个简单的执行程序的服务类型。其他常见类型还有forking(服务启动后会创建子进程)等。
    • ExecStart:指定服务启动时要执行的命令,这里是我们之前创建的脚本文件的路径。
    • Restart:设置为on - failure,表示服务在遇到错误退出时会自动重启。
    • User:指定服务运行的用户,这里设置为root,也可以根据实际安全需求修改为其他用户。
    • WorkingDirectory是服务配置中的一个重要参数。它指定了服务运行时的工作目录。当服务启动后,它会将这个目录作为当前工作目录,就像在命令行中使用cd命令切换到这个目录一样。许多与文件系统相关的操作(如读取配置文件、写入日志文件等)都会基于这个工作目录来进行相对路径的定位。
  • [Install] 部分
    • WantedBy:这里表示服务应该被哪个目标(target)所启用。multi - user.target是多用户模式下的基本目标,意味着在系统进入多用户模式时,这个服务会被自动启动(当然还需要执行systemctl enable命令来设置开机启动)。

 内容如下:

根据自身项目情况更改即可

[Unit]
Description=Python Script
After=network.target

[Service]
User=root
WorkingDirectory=/usr/projects/flask-api
ExecStart=/bin/bash -c ". .venv/bin/activate && python worker.py -n 1"
Restart=always

[Install]
WantedBy=multi-user.target

写入上面内容后vi 执行 :wq  保存并退出

3. 管理自定义服务

3.1重新加载(Systemd)服务配置 

systemctl daemon-reload

3.2启动服务

systemctl start my.service

3.3查看服务状态

systemctl status my.service

3.4设置开机启动

systemctl enable my.service

3.5查看服务是否是开机启动

systemctl is-enabled my.service

enabled:说明是开机自启

3.6禁用服务开机自启

systemctl disable my.service

3.7停止服务

systemctl stop my.service

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值