- A+
如果您想让“绿色版”程序成为在开机时自启或在后台运行,就需要将其注册为系统服务。
首先,您要搞清楚您的 Linux 系统使用的 初始化系统 是什么,常见的初始化系统:
- Systemd
- Upstart
- SysV-Init
执行下面的命令然后查看输出,找到您的初始化系统:if [[ `/sbin/init --version` =~ upstart ]]; then echo Upstart; elif [[ `systemctl` =~ -\.mount ]]; then echo Systemd; elif [[ -f /etc/init.d/cron && ! -h /etc/init.d/cron ]]; then echo SysV-Init; else echo Unknown; fi
本文将以systemd初始化系统为例,讲解如何注册系统服务及设置开机启动;
注册系统服务
编写配置文件
Systemd 的 Unit 配置文件 通常位于这些目录中:
- /lib/systemd/system (供软件包使用)
- /etc/systemd/system (供管理员使用)
本教程将选用第二个目录来放置 Unit 配置文件,并且 frpc 启用后报错退出时每分钟会自动重启一次
执行下面的命令vi /etc/systemd/system/<Unit名称>.service
会自动创建好这个文件,然后在英文输入法下按一下 i
键,左下角应该会出现 -- INSERT --
或者 -- 插入 --
字样
然后复制并粘贴下面提供的服务文件内容,请注意 不要 多复制或少复制任何东西,确保粘贴后的内容与下方一致[Unit]
Description=name Service
After=network.target
[Service]
Type=idle
User=nobody
Restart=on-failure
RestartSec=60s
ExecStart=脚本命令或程序指令
[Install]
WantedBy=multi-user.target
粘贴完成后按一下 ESC,左下角的 -- INSERT -- 会消失,此时输入 :wq 并按回车退出
执行下面的命令重载 Systemd,这样服务就配置完成了systemctl daemon-reload
启动服务命令systemctl start <Unit名称>
停止服务命令systemctl stop <Unit名称>
查看运行情况systemctl status <Unit名称> -l
配置开机启动
注册好服务后,实现开机自启非常简单,回顾一下前置知识
我们只要 启用 服务就可以实现开机自启
如果不想开机自启了,禁用 服务即可
使用下面的命令启用/禁用服务,enable 是启用,disable 是禁用,操作完成后再用 status 检查一下状态systemctl <enable|disable> <Unit名称>
systemctl status <Unit名称>