centos7启动脚本
‘壹’ 在centos7上写shell脚本,adb reboot后不能执行之后的命令,导致脚本无法继续!
必须按顺序重启?
如果必须按顺序,放后台执行但是中间间隔多少秒,sleep 60
比如:
for xx in ${xxx[@]}
do
adb reboot 192.168.1.${xx} &
sleep 60
done
‘贰’ CentOS7 设置开机自启动脚本
两种实现方式:
方法一: (rc.local)
1、因为在 centos7 中 /etc/rc.d/rc.local 的权限被降低了,所以需要赋予其可执行权
2、赋予脚本可执行权限
假设 /usr/local/sca/start.sh 是你的脚本路径,给予执行权限
3、打开 /etc/rc.d/rc.local 文件,在末尾增加如下内容
方法二: (chkconfig)
1、将脚本移动到 /etc/rc.d/init.d 目录下
2、增加脚本的可执行权限
3、添加脚本到开机自动启动项目中
chkconfig 启动脚本规范 在脚本开头加入下面内容:
注意:不添加以上内容的话添加启动项时会提示service myservice does not support chkconfig
Linux启动优先级:
‘叁’ centos 7 shell 脚本怎样运行
一、root权限编辑/etc/rc.d/rc.local
Shell代码
su
cd /etc/rc.d/
vi rc.local
二、在这个文件加上你要执行的脚本,全部内容如下:
Shell代码
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
mount //192.168.0.3/data2-1 /mnt/data2-1 -o username=un,password=123
mount //192.168.0.3/data2-2 /mnt/data2-2 -o username=un,password=123
mount //192.168.0.3/data2-3 /mnt/data2-3 -o username=un,password=123
mount //192.168.0.3/data2-4 /mnt/data2-4 -o username=un,password=123
mount //192.168.0.3/data2-5 /mnt/data2-4 -o username=un,password=123
提示:这里的做法很不成熟,希望不要这样,最好自己写个脚本文件在这里来调用,结构更清晰,但是要注意到是把要执行的命令作为一个参数传递给su。
另外复习一个VI编辑命令-拷贝
yy
p
‘肆’ Centos 7关于rc.local脚本命令开机不执行及指定用户启动的解决方法
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 ring boot instead of using thisfile.
#
# In constrast to previous versions e to parallelexecution ring 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 ring 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
‘伍’ CENTOS7开机自启动脚本
1、因为在centos7中 /etc/rc.d/rc.local 的权限被降低了,所以需要赋予其可执行权
2、赋予脚本可执行权限
假设 /usr/local/script/autostart.sh 是你的脚本路径,给予执行权限
3、打开 /etc/rc.d/rc.local 文件,在末尾增加如下内容
1、将脚本移动到 /etc/rc.d/init.d 目录下
2、增加脚本的可执行权限
3、添加脚本到开机自动启动项目中
chkconfig启动脚本规范 在脚本开头加入下面内容:
说明:chkonfig后面是启动级别和优先级,description后面是服务描述。如上面脚本意思是,
服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,停止的优先级是10。
优先级范围是0-100,数字越大,优先级越低。
Linux启动优先级
运行级别就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。
这些级别在/etc/inittab文件里指定。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。
不同的运行级定义如下:(可以参考Linux里面的/etc/inittab)
‘陆’ 求教关于Centos 7开机自动启动脚本 问题。
Centos 7 中 /etc/rc.d/rc.local 这个文件权限降低了。你可以看下 ll /etc/rc.d/rc.local 看他的权限。
你可以试着加下权限。
chmod +x /etc/rc.d/rc.local
‘柒’ Centos7 自己写了一个java程序的jar包,需要写一个脚本,然后设置成开机自启动,应该怎么做
首先: centos 7默认 /etc/rc.local是没有执行权限的,所以:
第一步: chmod+x /etc/rc.local
第二步:把你要开机启动的脚本加到这个文件最后。保存就可以了
没错,就这么简单,哈哈,好运