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.local

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

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

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

[[email protected] ~]$ 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

时间: 2024-10-10 18:13:13

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

centos 7 /etc/rc.local 开机不执行的问题

最近发现centos7 的/etc/rc.local不会开机执行,于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了 #!/bin/bash # 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 thi

理解Linux系统/etc/init.d目录和/etc/rc.local脚本

本文英语版本来自:http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/ 以下内容是作者自己的翻译版本,如需转载到CSDN外其他网站,请注明本文链接.  一.关于/etc/init.d 如果你使用过linux系统,那么你一定听说过init.d目录.这个目录到底是干嘛的呢?它归根结底只做了一件事情,但这件事情非同小可,是为整个系统做的,因此它非常重要.init.d目录包含许多系统各种服务的启动和停止脚本.

理解Linux系统/etc/init.d目录和/etc/rc.local脚本(转载)

本文英语版本来自:http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/ 以下内容是作者自己的翻译版本,如需转载到CSDN外其他网站,请注明本文链接.  一.关于/etc/init.d 如果你使用过Linux系统,那么你一定听说过init.d目录.这个目录到底是干嘛的呢?它归根结底只做了一件事情,但这件事情非同小可,是为整个系统做的,因此它非常重要.init.d目录包含许多系统各种服务的启动和停止脚本.

Oralce 导出脚本命令,定时执行

原文:Oralce 导出脚本命令,定时执行 @echo off @echo ================================================ @echo  windows环境下Oracle数据库的自动备份脚本 @echo  1.备份导出文件时自动使用当前日期进行命名. @echo  2.urls 是临时目录,url,是最终保存目录 ,保存后会删除临时目录 @echo  3.这是Oracle 11g 的导出命令,下面是5个用户的导出 expdp ppp/[email

一些git命令使用技巧和常遇到的问题的解决方法

一些git命令使用技巧和常遇到的问题的解决方法 只有.git目录如何取代码 运行git reset --hard即可.运行后,会看到出现所有需要的目录了. Git am 合并 patch 时的冲突处理 (1)$ git am xxx路径/0001-BUG-Sybase.patchApplying: CHG: 读取Sybase如果时间为空,设置默认时间的修改error: patch failed: source.php:38error: source.php: patch does not app

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)解决方法

问题:正常启动mysql,显示成功,查看状态报错 .并且不能连接 查看启动日志,发现是内存不够启动(低配云服务器) 解决方案: 1.停掉一些不使用的进程释放内存 2.在/var/lib/mysql/下创建一个空的   mysql.pid 文件 [[email protected] mysql]# echo >> chendu.pid 3.重新启动 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.s

CentOS 6.5 rc.local 开机不执行的原因之一

好久不动Linux,最近帮朋友弄了一下. 新买的阿里云主机,由于内存1GB所以选择了32bit的CentOS6.5. 安装软件和配置及其一些优化都很顺利,可是希望能在开机启动的时候启动web服务器和数据库,我的习惯做法是把启动脚本放在rc.local里面.重启发现根本没生效,测试了一下写法上没有任何问题.但是又找不到问题在哪里,Google了一下没找到什么有用的信息,偶然发现有人在写权限的问题,他写的是即使给了rc.local执行权限仍然无法执行,我看看下是他的脚本写错了.反过来我看了下我的rc

centos7 rc.local脚本执行不成功

腾讯云 centos7   配置文件/etc/rc.local的内容如下: #!/bin/sh #secu_agent init monitor, install at Thu Aug 3 11:19:41 CST 2017 /usr/local/sa/agent/init_check.sh > /dev/null 2>&1 /usr/sbin/ntpdate ntpupdate.tencentyun.com >/dev/null 2>&1 & /usr/l

linux自定义脚本添加到rc.local脚本无法正常运行的问题

为了能科学地上网,你懂的.其中需要将服务端做成开机启动.然而脚本在secure crt下能正常运行,添加到/etc/rc.local下却无法正常启动服务.用ps查找了下,脚本是运行了,但服务没起来.于是折腾了一通,怀疑是不是路径找不到的原因.然而export了一下PATH,妥妥的. 原脚本 #! /bin/sh #进程名字可修改 PRO_NAME=ssserver PORT=不告诉你 PASS=不告诉你 while true ; do #用ps获取$PRO_NAME进程数量 NUM=`ps au