• Linux中设置开机启动执行命令和普通用户配置环境变量开机启动生效


    记录: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

    文件内容:

    1. # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
    2. #
    3. # It is highly advisable to create own systemd services or udev rules
    4. # to run scripts during boot instead of using this file.
    5. #
    6. # In contrast to previous versions due to parallel execution during boot
    7. # this script will NOT be run after all other services.
    8. #
    9. # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
    10. # 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

    修改内容:

    1. if test -f /sys/kernel/mm/transparent_hugepage/enabled;
    2. then echo never > /sys/kernel/mm/transparent_hugepage/enabled
    3. fi
    4. if test -f /sys/kernel/mm/transparent_hugepage/defrag;
    5. then echo never > /sys/kernel/mm/transparent_hugepage/defrag
    6. 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

    修改内容:

    1. PGHOME=/home/apps/module/postgresql
    2. export PGHOME
    3. PGDATA=/home/data/postgresql/data
    4. export PGDATA
    5. 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

    增加内容:

    1. export JAVA_HOME=/home/apps/module/jdk1.8.0_281
    2. export PATH=$PATH:$JAVA_HOME/bin

    解析:主机启动,Java在任何路径下都可以使用。

    以上,感谢。

    2022年11月27日

  • 相关阅读:
    第八章:网络设备文件管理)
    C++多态与虚函数的实现
    STM32智能门禁系统教程
    测试2年6.5K,每天“911”,我的心酸经历只有我自己知道···
    C++ 语法基础课2 —— printf 语句与 C++中的判断结构
    实操|风控模型中常用的这三种预测方法与多分类场景的实现
    微软如何打造数字零售力航母系列科普01 --- Azure顾问(AZURE Advisor)简介
    portswigger lab:SQLI 盲注:利用conditional error
    5G与中国的海
    C语言-汉诺塔问题
  • 原文地址:https://blog.csdn.net/zhangbeizhen18/article/details/128064891