设置服务开机自启rc.local init.d

前面已经讲了Linux的启动级别及相应的启动说明:https://blog.csdn.net/SONGW2018/article/details/81950146
那么是否还有其他的方法设置开机启动呢 ,有,这就涉及到了Linux开机启动过程,和中间依次会启动的模块。
简要的说(不够准确),linux的inittab过程可以归结为三大步骤:
1. 系统初始化:rc.sysinit
2.服务启动:rc N 启动rcN.d下的服务
3.本地初始化:rc.local

所以目前接触到的开机启动方法有如下两个:
A: init.d 添加服务
把服务启动脚本放在init.d里,通过 /etc/rc.d/rcN.d/里对应的开机启动项链接过去,
然后使用chkconfig --add servicename 添加开机服务
chkconfig --level 35 servicename on 添加启动级别
chkcoinfig --level 35 servicename off 关闭开机启动

B: rc.local 添加开机自启
这是一个最简单的方法,编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可(要输入命令的全路径),类似于windows下的“启动”。
使用命令 vi /etc/rc.local ,然后在文件最后一行添加要执行程序的全路径。
例如,每次开机时要执行一个haha.sh,这个脚本放在/opt下面,那就可以在“/etc/rc.local”中加一行“/opt/./haha.sh”,或者两行“cd /opt”和“./haha.sh”。
额,刚才实验发现一个问题 ,原来执行脚本的时候在当前目录下是 ./xx.sh , 然后换到其他目录下,就需要通过上面的方法执行了,比如 /usr/local/./xx.sh ,但是后来试了下,直接写全路径也行呀 不需要当中的 ./ 了,这个等到了一定水平重新研究.

第一次把脚本路径写进/etc/rc.local的时候,并且 /etc/rc.local 是有执行权限的,but 重启后并没有生效,后面查了才知道,需要添加 /etc/rc.d/rc.local 的可执行权限才行,前面那个只是软链接!

https://www.cnblogs.com/fatt/p/4789375.html
https://blog.csdn.net/qq_36349129/article/details/79864649
https://blog.csdn.net/a746742897/article/details/53404893

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你的 Linux 系统没有 rc.local 文件,则需要根据不同的发行版进行配置。以下是一些常见的 Linux 发行版的开机自启设置方法: 1. Ubuntu 16.04 及之前版本: Ubuntu 16.04 及之前版本使用 upstart 管理系统服务,可以通过以下步骤进行开机自启设置: - 在 /etc/init 目录下创建一个新的 .conf 文件,例如: ``` sudo nano /etc/init/myscript.conf ``` - 在该文件中添加以下内容: ``` description "My script service" start on startup task exec /usr/bin/python3 /home/user/myscript.py ``` 其中,`description`是服务的描述,`start on startup`表示在系统启动时自动启动,`exec`是需要执行的命令或脚本。 - 保存文件并退出编辑器。 - 重启系统,使修改生效。 2. Ubuntu 18.04 及之后版本: Ubuntu 18.04 及之后版本使用 systemd 管理系统服务,可以通过以下步骤进行开机自启设置: - 在 /etc/systemd/system 目录下创建一个新的 .service 文件,例如: ``` sudo nano /etc/systemd/system/myscript.service ``` - 在该文件中添加以下内容: ``` [Unit] Description=My script service After=network.target [Service] ExecStart=/usr/bin/python3 /home/user/myscript.py WorkingDirectory=/home/user/ Restart=always User=root [Install] WantedBy=multi-user.target ``` 其中,`Description`是服务的描述,`ExecStart`是需要执行的命令或脚本,`WorkingDirectory`是命令或脚本所在的目录,`User`是执行命令或脚本的用户。 - 保存文件并退出编辑器。 - 启用该服务设置开机自启动: ``` sudo systemctl daemon-reload sudo systemctl enable myscript.service ``` - 重启系统,使修改生效。 3. CentOS 7 及之后版本: CentOS 7 及之后版本使用 systemctl 管理系统服务,可以通过以下步骤进行开机自启设置: - 在 /etc/systemd/system 目录下创建一个新的 .service 文件,例如: ``` sudo nano /etc/systemd/system/myscript.service ``` - 在该文件中添加以下内容: ``` [Unit] Description=My script service After=network.target [Service] ExecStart=/usr/bin/python3 /home/user/myscript.py WorkingDirectory=/home/user/ Restart=always User=root [Install] WantedBy=multi-user.target ``` 其中,`Description`是服务的描述,`ExecStart`是需要执行的命令或脚本,`WorkingDirectory`是命令或脚本所在的目录,`User`是执行命令或脚本的用户。 - 保存文件并退出编辑器。 - 启用该服务设置开机自启动: ``` sudo systemctl daemon-reload sudo systemctl enable myscript.service ``` - 重启系统,使修改生效。 以上是一些常见的 Linux 发行版的开机自启设置方法,如果还有问题,请告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值