记录:343
场景:在CentOS 7.9操作系统上,开机启动就执行自定义的命令,配置rc.local文件达到需求;在普通用户中配置环境变量开机启动生效,使用profile实现。
版本:
操作系统:CentOS 7.9
1.设置开机启动执行命令
1.1自定义命令设置为开机启动执行命令
需求:开机启动时,就在/home/apps/hz.txt文件输出一条消息。
(1)编辑文件rc.local
修改命令:/etc/rc.d/rc.local
修改内容:echo 'Hangzhou is a city.' >> /home/apps/hz.txt
(2)赋权rc.local可执行
命令:chmod +x /etc/rc.d/rc.local
解析:把rc.local设置为可执行。
(3)重启主机查看
重启后在对应目录生成了文件,验证可用。
1.2命令被调用原理
(1)在rc.local文件已说明功能
查看/etc/rc.d/rc.local文件说明,可以一目了然。
命令:cat /etc/rc.d/rc.local
文件内容:
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
解析:rc.local注释说到,这是创建自己的系统服务的方式,写入命令后,需赋权可执行。
(2)系统服务列表
在系统服务列表中,有rc-local.service会去执行rc.local文件。
查看服务:systemctl list-unit-files | grep rc.local
打印信息:rc-local.service static;服务是一个static类型的,系统自带的。
1.3在rc.local配置场景
实际生产中,有很多这种需求场景。
(1)主机开机就关闭透明大页
修改命令:vi /etc/rc.d/rc.local
修改内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled;
then echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag;
then echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
(2)主机开机就启动rpcbind服务
修改命令:vi /etc/rc.d/rc.local
修改内容:systemctl start rpcbind
(3)主机启动就挂载镜像到指定目录
修改命令:vi /etc/rc.d/rc.local
修改内容:mount -o loop /home/apps/software/local_iso/CentOS-7-x86_64-Everything-2009.iso /var/www/html/local_iso
2.普通用户中配置环境变量开机启动生效
2.1在普通用户中配置环境变量
需求:在普通用户postgres的.bash_profile文件中配置环境变量,需要开机启动就生效。
(1)普通用户postgres的home目录
postgres的home目录:/home/postgres
查看目录下配置文件:ll -a
配置文件.bash_profile是一个隐藏文件。
(2)配置.bash_profile文件
修改配置:vi .bash_profile
修改内容:
PGHOME=/home/apps/module/postgresql
export PGHOME
PGDATA=/home/data/postgresql/data
export PGDATA
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
解析:PGHOME,安装目录;PGDATA,数据目录。
(3)手动配置生效方式
配置生效命令:source ./.bash_profile
解析:这种方式,重启主机后,配置就失效了,需再次手动执行命令。
(4)配置开机启动生效
修改指令:vi /etc/profile
增加内容:source /home/postgres/.bash_profile
解析:把生效命令写到/etc/profile文件时,开机启动配置就生效了。
2.2Java的JAVA_HOME和PATH生效
修改指令:vi /etc/profile
增加内容:
export JAVA_HOME=/home/apps/module/jdk1.8.0_281
export PATH=$PATH:$JAVA_HOME/bin
解析:主机启动,Java在任何路径下都可以使用。
以上,感谢。
2022年11月27日