【发布时间】:2015-08-13 06:07:35
【问题描述】:
当我在启动时使用 init.d 目录运行脚本 S*.sh 以将其链接到 /etc/rcS.d 时,我收到以下消息:
无法打开文件
py.sh
py.sh 包含在S*.sh 中,应该被执行。所有文件都设置为超级用户,并且所有用户都有读、写和执行的权限。当我手动启动S*.sh 时,它工作正常。
这里是S*.sh写的代码:
#!/bin/sh
x=1
while [ $x -le 14400 ]
do
DD=$(date +%d)
MM=$(date +%m)
date >> /home/lasbr/Dokumente/"bmv"$DD$MM".log"
sh /etc/init.d/py.sh &
sleep 60s
x=$(( $x + 1 ))
done
也许,因为它是手动工作的,它与引导顺序有关。也许 Ubuntu 会尝试在需要运行几个服务来处理脚本之前启动脚本?!
【问题讨论】:
-
您没有分享大量信息,您的问题令人困惑。您是否可能在没有绝对路径的情况下调用 y.sh 并且
PATH环境变量不包含路径? -
您需要哪些信息?我用绝对路径(/etc/init.d/y.sh)调用y.sh
-
发布脚本减去所有敏感信息。
-
什么是
S*.sh,是字面意思,是带通配符还是你在责备你的文件名?你到目前为止y.sh、py.sh和S*.sh,这是否意味着你有 3 个单独的脚本?你有错误:Can't open file y.sh,但是你的脚本叫做py.sh,你能提供缺少的信息吗,你怎么称呼这个y.sh或者是错字? -
如果你想调试你的脚本,运行
-x。例如:#!/bin/sh -x,调用时尝试:sh -x /etc/init.d/py.sh等
标签: linux shell startup execution init.d