我目前正试图让一个脚本工作,需要定义一些LSBfunction。 这发生在这里:
echo "step 1" # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables [ -f /etc/default/rcS ] && . /etc/default/rcS echo "step 2" # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present # and status_of_proc is working. . /lib/lsb/init-functions echo "step 3"
但脚本在第二步之后中止执行,我从来没有得到输出“第三步”。 这个脚本是祸害的开始脚本。 它曾经工作,但我注意到,我的洪水不工作了,我追溯到这一行代码的问题。
有谁知道可能会导致这种情况? init函数文件存在于指定的目录中。
如果shell脚本中的某些内容使用exec或exit而不是返回值或仅仅打到文件的末尾,则可以在shell脚本的源文件中看到中止。
从文件系统的布局来看,我猜你是在一个RedHat衍生工具上,在CentOS 6和CentOS 7上,/ lib / lsb / init-functions文件非常短,默认情况下包含很less,所以我不期望结果你看到是可能的,除非它被修改。 您的下一个debugging步骤可能是检查该文件是否有其他可能的源文件,否则插入更多的debugging信息以确定它正在中止的线路。
我发现问题出在哪里:文件有错误的权限,不允许脚本读取文件。