在启动时以特定用户身份运行Python脚本

我想在启动时运行一个python脚本作为特定的用户。

该脚本是一个服务器(侦听套接字,服务请求等),应该在后台运行,任何输出最好pipe道到一个日志文件。

我目前的做法是在rc.local的末尾添加一个条目,如下所示:

su -l usr -c 'script.py arg1 arg2 &> logfile.log &' 

问题:在脚本中我有几个打印语句在脚本中。 他们从来没有出现在日志文件中。 我试过了

 su -l usr -c 'script.py arg1 arg2 &> logfile.log &' su -l usr -c 'script.py arg arg &> logfile.log &' &> secondLogfile.log & su -l usr -c 'script.py arg arg &> logfile.log &' su usr -c 'script.py arg arg &> logfile.log &' 

我有这种感觉,我失去了一些基本的东西。 也许我会用完全错误的方式去解决这个问题。

系统是Fedora 15,脚本是Python3,并以用户身份从命令行运行。 用户有权写入我想要输出redirect到的文件夹。 (我通过使文件夹777排除)。

我试图让Python脚本作为Systemd服务运行,但是我的脚本能够抓住一个套接字来侦听。 (抛出一个关于套接字的操作系统错误在使用,如果我启动systemd服务,而如果我运行systemctl启动script.service后启动事情工作正常)。

我如何启动一个python脚本作为一个用户在引导时抓住一个套接字?

这适用于我:

su -l usr -c“python script.py arg1 arg2> logfile.txt&”

我相信之前的&正在推动“python script.py”过早进入后台。

@Reboot行像crontab中的魅力一样工作。 Freetx的答案不适合我(我尝试了一些和它一样的东西,没有骰子:-(