前言
为了方便,我们经常希望将一些常用的软件或者程序设为开机启动,这里我以Ubuntu16.04为例进行讲解,介绍几种常见的开机自启动方法。
1. startup application
- Step1 给执行文件(自带文件头: - #!/bin/sh或者- #!/usr/bin/env python)权限:- 1 - sudo chmod 777 可执行文件 
- Step2 搜索 - Startup Application:  - 直接添加 - 任务名称Name、- 任务执行文件绝对路径或者执行命令Command和- 备注Comment。
2. rc.local
我们可以直接在 /etc/rc.local中添加开机启动命令,:
| 1 | #!/bin/sh -e | 
另外,记得赋予待执行的源文件可执行权限。
3.init.d
下面保持当前路径为/etc/init.d:
- Step1 在 - /etc/init.d新建一个开机自启动文件,如:- test
- Step2 在test中写入指令,最好带上文件头: - 1 
 2
 3
 command &- 之所以加上 - &是因为有些命令是一直执行的,可以放在后台执行。
- Step3 赋权限: - 1 - sudo chmod 777 test 
- Step4 更新开机自启动列表: - 1 
 2
 3- sudo update-rc.d test defaults 
 或者
 sudo update-rc.d test defaults 数字- 加上数字是为了防止有些开机自启动任务有顺序要求,数字越大越晚执行。 - 删除方式是: - 1 - sudo update-rc.d -f test remove 
4. systemd
systemd是Ubuntu16.04及之后官方的开机自启动管理方式,我们可以在/etc/systemd/system中新建一个服务test.service,权限记得哦~,然后写入:
| 1 | [Unit] | 
各模块具体意义可参考这里。
然后执行:
| 1 | sudo systemctl daemon-reload | 
如果想即刻运行,则:
| 1 | sudo systemctl start test.service | 
注意:以上可通过
systemctl status commandname.service来查看开机自启动项目是否设立成功,也可以在开机之后利用进程监控。

