我想在Ubuntu Server 10.10机器上启动启动脚本。rc.local和python脚本
我rc.local中看起来像这样的相关部分:
/usr/local/bin/python3.2 "/root/Advantage/main.py" >> /startuplogfile
exit 0
如果我从/ etc一切工作只是罚款./rc.local运行,并将其写入以下内容/ startuplogfile:
usage: main.py [--loop][--dry]
出于测试目的,这正是需要发生的事情。当我重新启动计算机时,它不会写入任何启动日志文件。我试图猜测,在启动时运行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是在登录前执行的。
编辑:我注意到,这个帖子是有点乱,所以让我总结一下:
- 我证实的rc.local被称为在启动时
- 如果rc.local的手动称为 一切按预期工作
- 权限设置是否正确
- 一个测试Python脚本适用于 启动时使用的rc.local
- 我实际的Python S作为预期设定CRIPT将只在启动时运行 如果rc.local中手动调用,而不是
我会立即尝试。你能帮我一个忙,并解释语法吗?我很好奇。 – 2011-04-23 12:02:09
这非常有帮助,我现在更清楚地了解发生了什么。果然,错误来自python脚本。非常感谢 – 2011-04-23 13:01:37
stderr(错误被记录)是2。标准输出(标准输出被记录的位置)是1,可以放在文件中。在编写2>&1时,您将stderr重定向到stdout。 – 2011-04-23 15:06:16