关于linux开机启动问题

linux系统不同与常用的windows系统。因此,对于开机启动也有着不同的设置,今天我就介绍一下如何设置linux系统下开机启动一些服务的方法。当然如果大家看到我的文章的话,希望能够全部读完在去操作。因为有一些问题细节我在后面后讲到(可能有错误,如果有的话,希望大家给我留言改正)

首先系统启动的话要自己配置一下.service文件(这里不做说明)

CentOS & Redhat

chkconfig service_name {on|off} CentOS6.x 以下版本
systemctl enable/disable service_name CentOS7.x 以上版本

ubuntu 查到有以下2中方式

update-rc.d service_name defaults;
sysv-rc-conf –level 345 service_name on;(这个命令ubuntu 18的系统我试过好像不能用,别的版本没试过)

deepin系统(我这里说明这个系统,主要是我的电脑就是这个系统)

systemctl enable/disable service_name
update-rc.d service_name defaults;
- 注:这里用update更改启动的话默认的文件夹是在/etc/init.d/下,因此可以在这个创建service文件后直接打名字就行了

另外systemctl的话,要把service文件创建在这个位置下 /etc/systemd/system/

说一个linux通用的方法:
/etc/rc.local

这里我要特别说明的是ubuntu16之后的系统没有这个文件(想让systemd独立)。但是,没有不代表他就不会加载这个东西,可以自己创建一个这样的文件
sudo vim /etc/rc.local

# 在exit 0之前添加你的开机程序

exit 0

搞完之后给文件赋可执行权限
sudo chmod +x /etc/rc.local

如果不行的话就再system下创建服务脚本
sudo vi /etc/systemd/system/rc-local.service

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99
#sysVstart这行可以删掉,我看启动日志中貌似报忽略这个了。。

[Install]
 WantedBy=multi-user.target

sudo systemctl enable rc-local.service
运行后即可

有关init.d/文件夹下创建的启动项有时不能启动问题:

linux系统加载init.d/下的内容其实是在系统启动的中期,也就是说系统本身的东西并没有完全加载完。因此这时的一些服务就不能够运行。而rc.local之所以能够成功运行那些服务是因为linux系统加载rc.local下的东西是在系统启动的最后阶段,系统本身的东西已经加载完成,而此时就可以正常去加载各种服务了(小编网上查的资料)

当然,种种迹象表明systemd已经来临,用systemd是种大趋势,我们也应该尽量多的学习,运用这种方法。

猜你喜欢

转载自blog.csdn.net/qq_38701476/article/details/81917113
今日推荐