解决RHEL服务自启动时报错service Failed to locate executable...Failed at step EXEC spawning...Permission denied

笔者报错时的运行环境:

  • Red Hat Enterprise Linux 9

问题描述

  最近笔者在 RHEL 上设置包括 Nacos、Redis 等等多个软件的开机自启动时,都在开机启动时失败,而且报错信息核心内容都相同,都是启动时执行启动脚本发生一种“权限被拒绝”的错误。

  具体来说,笔者先在目录 /etc/systemd/system 下编写了一个关于 Nacos 开机启动的 .service 文件,并在该文件中的属性 ExecStart 中给出了 Nacos 的启动命令,然后设置了 Nacos 服务的自启动。但 Red Hat Enterprise Linux 9 重启后,笔者发现 Nacos 并没有启动,Nacos 端口号并没有生成。查看 Nacos 服务状态信息,发现“权限被拒绝”的错误。

  具体报错内容如下:

[root@192 ~]# systemctl start nacos.service
Job for nacos.service failed because the control process exited with error code.
See "systemctl status nacos.service" and "journalctl -xeu nacos.service" for details.
[root@192 ~]# systemctl status nacos.service
× nacos.service - nacos-server
     Loaded: loaded (/etc/systemd/system/nacos.service; enabled; preset: disabled)
     Active: failed (Result: exit-code) since Sat 202X-XX-XX XX:XX:XX CST; Xmin XXs ago
    Process: 979 ExecStart=/usr/local/nacos/bin/startupbyos.sh -m standalone (code=exited, status=203/EXEC)
        CPU: 4ms

XX月 XX XX:XX:XX localhost systemd[1]: Starting nacos-server...
XX月 XX XX:XX:XX localhost systemd[979]: nacos.service: Failed to locate executable /usr/local/nacos/bin/startupbyos.sh: Permission denied
XX月 XX XX:XX:XX localhost systemd[979]: nacos.service: Failed at step EXEC spawning /usr/local/nacos/bin/startupbyos.sh: Permission denied
XX月 XX XX:XX:XX localhost systemd[1]: nacos.service: Control process exited, code=exited, status=203/EXEC
XX月 XX XX:XX:XX localhost systemd[1]: nacos.service: Failed with result 'exit-code'.
XX月 XX XX:XX:XX localhost systemd[1]: Failed to start nacos-server.
[root@192 ~]# journalctl -xeu nacos.service
░░ Support: https://access.redhat.com/support
░░ 
░░ nacos.service 单元已开始启动。
X月 XX XX:XX:XX 192.168.XXX.XXX systemd[2453]: nacos.service: Failed to locate executable /usr/local/nacos/bin/startupbyos.sh: Permission denied
░░ Subject: 进程 /usr/local/nacos/bin/startupbyos.sh 无法执行
░░ Defined-By: systemd
░░ Support: https://access.redhat.com/support
░░ 
░░ 进程 /usr/local/nacos/bin/startupbyos.sh 无法被执行并已失败。
░░ 
░░ 该进程返回的错误代码为 ERRNO。
X月 XX XX:XX:XX 192.168.XXX.XXX systemd[2453]: nacos.service: Failed at step EXEC spawning /usr/local/nacos/bin/startupbyos.sh: Permission denied
░░ Subject: 进程 /usr/local/nacos/bin/startupbyos.sh 无法执行
░░ Defined-By: systemd
░░ Support: https://access.redhat.com/support
░░ 
░░ 进程 /usr/local/nacos/bin/startupbyos.sh 无法被执行并已失败。
░░ 
░░ 该进程返回的错误代码为 ERRNO。
X月 XX XX:XX:XX 192.168.XXX.XXX systemd[1]: nacos.service: Control process exited, code=exited, status=203/EXEC
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://access.redhat.com/support
░░ 
░░ An ExecStart= process belonging to unit nacos.service has exited.
░░ 
░░ The process' exit code is 'exited' and its exit status is 203.
X月 XX XX:XX:XX 192.168.XXX.XXX systemd[1]: nacos.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://access.redhat.com/support
░░ 
░░ The unit nacos.service has entered the 'failed' state with result 'exit-code'.
X月 XX XX:XX:XX 192.168.XXX.XXX systemd[1]: Failed to start nacos-server.
░░ Subject: nacos.service 单元已失败
░░ Defined-By: systemd
░░ Support: https://access.redhat.com/support
░░ 
░░ nacos.service 单元已失败。
░░ 
░░ 结果为“failed”。

问题原因

  笔者单独运行了 .service 文件的属性 ExecStart 中的 Nacos 的启动命令,发现这个命令的运行是没有问题的。说明笔者在 .service 文件中的配置没有问题。笔者又在不同的 Linux 操作系统中实验,终于发现了原因所在。

  Red Hat 内置了 SELinux(Security-Enhanced Linux)来保障 Linux 的安全,目录 /etc/systemd/system 中的服务也会受到安全策略的影响。如果该服务涉及 SELinux 不允许的操作。这有会让目录 /etc/systemd/system 中的服务因权限不足无法启动。

解决办法

  知道原因就好办了。SELinux 的配置文件为 /etc/selinux/config。修改文件 /etc/selinux/config,将其中的属性 SELINUXenforcing 改为 disabled。这样会关闭 SELinux。然后重启 Linux 即可。这样之后,Nacos 的服务就正常启动了。

在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值