Centos启用rc-local服务

简介

大多时候我们可以在/etc/rc.d/rc.local中写一些命令来实现随着服务器的启动(重启)运行自己的程序或服务,但是配置后无法启动,查看了下rc-local.service服务状态显示未启动。

[root@master ~]# systemctl status rc-local
● rc-local.service - /etc/rc.d/rc.local Compatibility
   Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static; vendor preset: disabled)
   Active: inactive (dead)
Condition: start condition failed at 五 2024-03-15 15:40:37 CST; 2s ago
           ConditionFileIsExecutable=/etc/rc.d/rc.local was not met

问题分析

默认情况下,使用下面的命令无法启动rc-local.service服务,原因是需要两处文件都设置可执行权限,但是 /etc/rc.d/rc.local 默认没有可执行权限。

[root@master ~]# systemctl start rc-local.service
[root@master ~]# systemctl enable rc-local.service
[root@master ~]# cd /etc/rc.d/
[root@master rc.d]# ll
总用量 4
drwxr-xr-x. 2 root root  70 611 2022 init.d
drwxr-xr-x. 2 root root  45 611 2022 rc0.d
drwxr-xr-x. 2 root root  45 611 2022 rc1.d
drwxr-xr-x. 2 root root  45 611 2022 rc2.d
drwxr-xr-x. 2 root root  45 611 2022 rc3.d
drwxr-xr-x. 2 root root  45 611 2022 rc4.d
drwxr-xr-x. 2 root root  45 611 2022 rc5.d
drwxr-xr-x. 2 root root  45 611 2022 rc6.d
-rw-r--r--  1 root root 504 315 15:37 rc.local

解决方法

设置可执行权限

# 设置可执行权限
[root@master rc.d]# chmod +x /etc/rc.d/rc.local

启动并查看状态

[root@master etc]# systemctl start rc-local.service
[root@master etc]# systemctl status rc-local.service
● rc-local.service - /etc/rc.d/rc.local Compatibility
   Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static; vendor preset: disabled)
   Active: active (running) since 五 2024-03-15 15:46:15 CST; 8s ago
  Process: 29650 ExecStart=/etc/rc.d/rc.local start (code=exited, status=0/SUCCESS)
 Main PID: 29653 (rsync.sh)
    Tasks: 3
   Memory: 596.0K
   CGroup: /system.slice/rc-local.service
           ├─29653 /bin/bash /home/rsync/rsync.sh
           ├─29654 /home/rsync/inotify/bin/inotifywait -mrq --timefmt %d/%m/%y %H:%M --format %T %w%f%e -e modify,...
           └─29655 /bin/bash /home/rsync/rsync.sh

315 15:46:15 master systemd[1]: Starting /etc/rc.d/rc.local Compatibility...
315 15:46:15 master systemd[1]: Started /etc/rc.d/rc.local Compatibility.
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS 7.9版本(CentOS-7-i386-Everything-2009)适用于i386,必须集齐9个文件才能一起解压缩使用,9个文件下载地址: CentOS-7-i386-Everything-2009.part09.rar https://download.csdn.net/download/weixin_43800734/20433341 CentOS-7-i386-Everything-2009.part08.rar https://download.csdn.net/download/weixin_43800734/20433316 CentOS-7-i386-Everything-2009.part07.rar https://download.csdn.net/download/weixin_43800734/20433271 CentOS-7-i386-Everything-2009.part06.rar https://download.csdn.net/download/weixin_43800734/20433250 CentOS-7-i386-Everything-2009.part05.rar https://download.csdn.net/download/weixin_43800734/20433222 CentOS-7-i386-Everything-2009.part04.rar https://download.csdn.net/download/weixin_43800734/20433129 CentOS-7-i386-Everything-2009.part03.rar https://download.csdn.net/download/weixin_43800734/20433111 CentOS-7-i386-Everything-2009.part02.rar https://download.csdn.net/download/weixin_43800734/20433025 CentOS-7-i386-Everything-2009.part01.rar https://download.csdn.net/download/weixin_43800734/20432977 CentOS是免费的、开源的、可以重新分发的开源操作系统,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一。 CentOS Linux发行版是一个稳定的,可预测的,可管理的和可复现的平台,源于Red Hat Enterprise Linux(RHEL)依照开放源代码(大部分是GPL开源协议 )规定释出的源码所编译而成。自2004年3月以来,CentOS Linux一直是社区驱动的开源项目,旨在与RHEL在功能上兼容。
如果你的 Linux 系统没有 rc.local 文件,则需要根据不同的发行版进行配置。以下是一些常见的 Linux 发行版的开机自启动设置方法: 1. Ubuntu 16.04 及之前版本: Ubuntu 16.04 及之前版本使用 upstart 管理系统服务,可以通过以下步骤进行开机自启动设置: - 在 /etc/init 目录下创建一个新的 .conf 文件,例如: ``` sudo nano /etc/init/myscript.conf ``` - 在该文件中添加以下内容: ``` description "My script service" start on startup task exec /usr/bin/python3 /home/user/myscript.py ``` 其中,`description`是服务的描述,`start on startup`表示在系统启动时自动启动,`exec`是需要执行的命令或脚本。 - 保存文件并退出编辑器。 - 重启系统,使修改生效。 2. Ubuntu 18.04 及之后版本: Ubuntu 18.04 及之后版本使用 systemd 管理系统服务,可以通过以下步骤进行开机自启动设置: - 在 /etc/systemd/system 目录下创建一个新的 .service 文件,例如: ``` sudo nano /etc/systemd/system/myscript.service ``` - 在该文件中添加以下内容: ``` [Unit] Description=My script service After=network.target [Service] ExecStart=/usr/bin/python3 /home/user/myscript.py WorkingDirectory=/home/user/ Restart=always User=root [Install] WantedBy=multi-user.target ``` 其中,`Description`是服务的描述,`ExecStart`是需要执行的命令或脚本,`WorkingDirectory`是命令或脚本所在的目录,`User`是执行命令或脚本的用户。 - 保存文件并退出编辑器。 - 启用服务并设置为开机自启动: ``` sudo systemctl daemon-reload sudo systemctl enable myscript.service ``` - 重启系统,使修改生效。 3. CentOS 7 及之后版本: CentOS 7 及之后版本使用 systemctl 管理系统服务,可以通过以下步骤进行开机自启动设置: - 在 /etc/systemd/system 目录下创建一个新的 .service 文件,例如: ``` sudo nano /etc/systemd/system/myscript.service ``` - 在该文件中添加以下内容: ``` [Unit] Description=My script service After=network.target [Service] ExecStart=/usr/bin/python3 /home/user/myscript.py WorkingDirectory=/home/user/ Restart=always User=root [Install] WantedBy=multi-user.target ``` 其中,`Description`是服务的描述,`ExecStart`是需要执行的命令或脚本,`WorkingDirectory`是命令或脚本所在的目录,`User`是执行命令或脚本的用户。 - 保存文件并退出编辑器。 - 启用服务并设置为开机自启动: ``` sudo systemctl daemon-reload sudo systemctl enable myscript.service ``` - 重启系统,使修改生效。 以上是一些常见的 Linux 发行版的开机自启动设置方法,如果还有问题,请告诉我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值