Centos 7关于rc.local脚本命令开机不执行及指定用户启动的解决方法

Centos 7关于rc.local脚本命令开机不执行及指定用户启动的解决方法,第1张

1.开机不启动

在实际核前生产场景中,我们喜欢在安装了一些软件服务后,将软销备件设置为开机自启动,设置为开机自启动有两种方法:

1)  设置为chkconfig,可以编写脚本,查看设置开机自启动的命令 –add表示添加程序自启动, --list表示查看。

以后的程序如果需要使用chkconfig开机自启动,改斗清那么需要在启动程序中加入三行:

# chkconfig:2345 20 80

#description: Saves and restores system entropy pool for \

#              higher quality random numbergeneration.

                第一行中的20,80是启动级别,不能与其他程序一样,因此,需自定义设置。

2)  配置在/etc/rc.local文件中。直接将软件服务的启动命令写在rc.local文件

注意:编辑完rc.local文件后,一定要给rc.local文件执行权限,否则开机时不会执行rc.local文件中脚本命令

chmod+x /etc/rc.d/rc.local

注意此处,是/etc/rc.d/rc.local,而不是/etc/rc.local,如果给/etc/rc.local执行权限是无效的,因为/etc/rc.local是软链接,真正的文件是/etc/rc.d/rc.local

2.关于在rc.local文件中指定用户执行脚本命令

使用su命令即可,命令格式:

su - username -c “your-cammand” ,如:

[jiakeke@mongodb ~]$ cat /etc/rc.local

#!/bin/bash

# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES

#

# It is highly advisable to create own systemdservices or udev rules

# to run scripts during boot instead of using thisfile.

#

# In constrast to previous versions due to parallelexecution during boot

# this script will NOT be run after all otherservices.

#

# Please note that you must run 'chmod +x/etc/rc.d/rc.local' to ensure

# that this script will be executed during boot.

touch /var/lock/subsys/local

/bin/systemctl start iptables.service

#startup mongodb

/bin/su - xiaoyao -c  "/mnt/mongodb/bin/mongod --config/mnt/mongodb/bin/mongodb.conf"

注意:指定用户执行的脚本(程序)目录,该用户必须有管理该脚本(程序)目录(文件)的权限。

最好将该脚本(程序)目录的所有权给该用户:

chown -R xiaoyao.xiaoyao /mnt/mongodb

看第一升或念行

#! /bin/sh

说明这个是个吵困shell脚本.

你可以搜一下linux shell编程,就能找到许多信团羡息了.

类似于dos/windows下的 .bat(批处理)

一. CentOS下写入要运行的文件

rc.local是在登录界面之前运行的一个文件,想要开机执行某个文件或者命令的话,可以在/etc/rc.d/rc.local 在该文件内末尾,写入要执行的文件。

例如我想要开机执行某个Python文件:

vi  /etc/rc.d/rc.local 进入到编辑模式,在文件末尾加入python3 ***.py和systemctl start crond.service

还需注意的是需要给rc.local文件加上可执行权限,否则加入指令不会生效。chmod +x /etc/rc.d/rc.local

重启后,加入的指念逗令即可生效

二.如果加入重启指令的话,就会进不去OS,在进入登录界面之前就会运带脊行rc.local文件,从而会一直重启

如何修改rc.local文件取消之前的指令呢?

1.进入recovery模式

a.重启系统,在选择内核界面使用上下箭头移动,选择内核按‘e’

b.找到linux16 /boot/vmlinux-3.10.0...x86_64 root=/dev/mapper/centos-root ro crashkernel-auto ... rhgb quiet LANG=en_US...

修改ro为rw,删掉rhgb quiet,加入init=/bin/bash

修改linux16 /boot/vmlinux-3.10.0...x86_64 root=/dev/mapper/centos-root rw crashkernel-auto ...  LANG=en_US... init=/bin/bash

c.使用‘ctrl+x’重启服务仔行卖器,重启之后就会进入到recovery模式

2.挂在根目录为可写:mount -o remount,rw /

3.使用vi修改/etc/rc.local。使用#注释掉之前的命令或者删除都可。

vi /root/.bash_profile

4.退出单用户命令exec /sbin/init

note:退出命令行到桌面命令:startx

三:修改root密码

进入单用户模式后,password root,输入两次新密码即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12562654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存