前言:

明明经常用到的东西却还是忘记具体内容,于是写一篇文章来记录一下

权且当个副本了。

原理简介

先创建一个进程文件,再通过systemctl命令载入,从而实现程序到可控进程的转变

但是对于某些需要经常看命令返回日志的应用,tmux和screen应该比systemctl要更加适合(对,没错。就是说你Minecraft)

配置进程

1.创建服务文件

输入命令vim /etc/systemd/system/xxx.service来创建进程文件.文件名自定义,只要以.service结尾即可
接着按i进入编辑模式,输入以下内容:

[Unit] 
Description=my application 
#进程备注 
After=network.target syslog.target 
#自启时在哪个服务后启用本进程 
Wants=network.target 
#该进程所依赖的服务,只有当依赖服务正常运行时才会启用本进程 

[Service] 
Type=simple 
#进程类型 可填simple,exec,forking,oneshot,dbus,notify,idle等.这里填默认即可 
ExecStart=/home/a.sh 
#应用的启动命令
Restart=always #是否在进程退出后自动重启进程
RestartSec=1 #重启间隔
[Install] 
WantedBy=multi-user.target 
#表示该进程所在的服务组

之后再通过ESC:wq来退出保存即可

2.启用进程

在文件创建完成之后,先通过systemctl daemon-reload来刷新systemctl的缓存 再通过systemctl命令来管理你的进程,如: systemctl start xxx #开启进程 systemctl restart xxx #重启进程 systemctl stop xxx #停止进程 systemctl status xxx #查看进程状态 systemctl enable xxx #启用进程开机自启 systemctl disable xxx #禁用进程开机自启 #其中xxx为你创建进程文件时的文件名,后面的.service后缀在通过systemctl命令调用时可省略

以上便是在linux下创建自启动进程的基本流程,因本篇只作笔记,若想要了解更多详细及原理方面的内容

可前往https://www.cnblogs.com/jhxxb/p/10654554.html去深入了解systemctl的相关机制.

systemctl