求教 rc.local 文件被重复执行

2021-12-16 11:01:55 +08:00
 NickYUyu

为了国产化,系统安装的是中标麒麟

将开机自启动的脚本添加到 rc.local 文件中,每次启动会执行三次,不知道说明原因

还有一个诡异的是,每次用 xshell 新开一个窗口,也会执行 rc.local 里面的内容,而且也是三次

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Thu Dec 16 10:53:56 2021 from 192.168.90.101
cd "/usr/local/se901/manager"
hahah
hahah
hahah
[root@localhost ~]# cd "/usr/local/"

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

touch /var/lock/subsys/local

echo "hahah"
exit 0

看网上没有这方面的坑,不知道大佬有没有遇到过,劳烦指导一下,感激不尽!!!

2562 次点击
所在节点    Linux
15 条回复
knightdf
2021-12-16 11:06:58 +08:00
为何要加一个:exit 0 ?
ihipop
2021-12-16 11:07:37 +08:00
估计是哪个全局的 profile 或者 shell 的 rc 文件 source 了这个 rc.local 可以 grep/ripgrep 全盘查找一下,如果新建一个用户没这个问题,重点查找用户主目录的那些*rc 文件
ihipop
2021-12-16 11:08:50 +08:00
@knightdf 老传统,防止上面的一些启动命令失败导致系统认为整个 rc.local 执行失败。
knightdf
2021-12-16 11:09:43 +08:00
@ihipop 好吧,我从来没加过,好像也没出啥问题
NickYUyu
2021-12-16 13:06:41 +08:00
@ihipop 好的 我这边排查一下看看
julyclyde
2021-12-16 15:20:00 +08:00
可以看出这机器有很多外行在使用了……唉
2i2Re2PLMaDnghL
2021-12-16 15:46:06 +08:00
鉴于每个 shell 都是新进程,完全可以把 echo "hahah" 替换成打印进程树(含命令行)
2i2Re2PLMaDnghL
2021-12-16 15:47:36 +08:00
替换成 `pstree -as $$` 就能看到调用树了(
NickYUyu
2021-12-16 16:54:27 +08:00
@2i2Re2PLMaDnghL 好的 我试试 谢谢
NickYUyu
2021-12-16 16:55:05 +08:00
@julyclyde 是外行 没办法 工作需要
julyclyde
2021-12-17 12:35:36 +08:00
1 启动后如果不登录,是否会执行三次
2 xshell 窗口执行三次,检查一下 xshell 里面这个 shell 的进程名字开头是否有横线

感觉是某个 profile 文件,用户级、系统级都有可能,里面调用了 rc.local

进一步猜测,你的 rc.local 文件可能没有+x 权限,导致不能正常的自动执行,所以有人为了让他能执行,才添加到 profile 里去了
EscYezi
2021-12-19 02:45:19 +08:00
一个思路:弄一个环境变量作为标志位,如果检测到环境变量说明被初始化过,直接退出
julyclyde
2021-12-19 17:52:29 +08:00
@EscYezi 这是掩盖错误的做法
NickYUyu
2021-12-20 09:19:58 +08:00
@julyclyde 感谢指导!
@EscYezi 感谢指导!
julyclyde
2021-12-20 17:21:00 +08:00
@NickYUyu 最后找到原因了吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/822551

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX