我正在尝试在Ubuntu Server 10.10计算机上启动脚本。
我的rc.local的相关部分如下所示:
/usr/local/bin/python3.2 "/root/Advantage/main.py" >> /startuplogfile
exit 0
如果我从/ etc运行./rc.local,一切正常,并将以下内容写入/ startuplogfile:
usage: main.py [--loop][--dry]
出于测试目的,这正是需要发生的事情。重新启动计算机时,它不会向startuplogfile写入任何内容。我冒昧地猜测在启动时运行rc.local时脚本没有启动。
我验证了rc.local是在文件中使用'touch / rclocaltest'启动的。正如预期的那样,目录已经创建。
我用另一个python脚本测试了rc.local,它简单地在/中创建一个文件并打印到/ startuplogfile。从终端和重启后,它工作正常。
我的执行位设置如下:
-rwxrwxrwx 1 root root 4598 2011-04-22 19:09 main.py
我完全不知道为什么会这样,我尝试了一切我能想到的方法来解决这个问题。关于可能导致这种情况的任何想法,我完全没有想法。
编辑:我忘了提到我只通过ssh登录这台机器。我不确定这是否有所不同,因为据我所知,rc.local在登录前执行。 编辑:我注意到这篇文章有点乱,所以让我总结一下:答案 0 :(得分:3)
尝试将stderr和stdout重定向到/ startuplogfile,如下所示:
/usr/local/bin/python3.2 "/root/Advantage/main.py" >> /startuplogfile 2>&1
您将看到是否发生错误
答案 1 :(得分:2)
你绝对不希望该脚本具有世界可写性。你试图在启动时自动以root身份运行它,但由于它是世界可写的,任何人都可以改变脚本来做任何事情 - 这是一个巨大的安全漏洞。