Ubuntu系统下树莓派的服务自启动

        刚刚接触ubuntu、树莓派这些东西,由于有些服务每天都要用到,于是想到要做一个开机自启动的服务省去每天的繁琐步骤。

1.关于通过systemctl 的管理

  首先要说的是,sysytemctl 看起来很好用,各种功能明确,但是人家管理的是服务(.service),如果随便拿来一个 .sh 的脚本让人家管理就多少有点不讲理了。

另外,关于 systemctl 的基本用法就简单说一下吧:

在 root 身份下 :

systemctl  [command]  [unit]

(1)[unit] 就是需要被管理的服务(结尾是 .service)

(2)[command] 可选择的有很多,不同的指令会对后面的 [unit] 产生不同的影响:

   主要有start(立即启动)、stop(立即停止)、enable(开机自启动)、status(查看状态)

2.设计一个自启动脚本self_start.service

   话不多说,先上图

内容其实挺简单的,注意服务要放在 /etc/systemd/system/self_start.service 这个地方(self_start.service是自己起的名字,可以换掉,下同)

关于具体内容:

[Unit]

Description=          //这句是用来描述服务的具体功能的,等于号后面随便写写就好,没什么影响的

After=                 

 //等号后面写什么就说明你的 unit 要在谁后面启动,其实这一句因人而异,不要需的话也可以不写

[service]

Type=simple       

//说明这个daemon的启动方式,一般写simple就可以了,这个 daemon 会由         ExecStart 后面的命令启动,启动后将常驻于内存

ExecStart=         

 //就是想要自启动的命令或脚本程序,这里要写一个绝对路径,注意一定要完整!完整!

EnvironmentFile=        //可以指定启动脚本的环境配置文件,需要就写这句,不需要就算了

[Install]

WantedBy=multi-user.target      //反正大家都会写这么一句,写上就好了,别问我为什么

3.实现

      至此,自启动的脚本我们就写好了,接下来只需要

 systemctl enable self_start.service

就会自动建立一个软连接,此时我们再去查看它的状态

 systemctl status self_start.service

 可以看到已经成功跑起来了。

4.写在最后

       实际情况肯定不会这么顺利的,你希望自启动的 .sh 脚本越复杂,面临的问题也就越多,因为不可能所有事情都像输出一句 “hello world” 那么简单。如果前面的内容都确定无误,却还是实现不了,可能要考虑微调一下自己的  .sh 脚本,比如开机后的启动顺序,是否需要延时启动;再比如说环境配置的问题。

        总之,错误答案总是各有各的错误,还是要具体问题具体分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值