这可能是一个重复出现的问题,但我找不到正确的方法来解决它。
我的情况是什么?->我想运行一个 Python 脚本。
简而言之,python 脚本起什么作用?->运行python脚本来设置虚拟专用网络。
我目前如何手动启动它?->我使用 ./file.py start (这有效)
什么不起作用?->当我尝试在开始时启动(启动)时,它什么也没做。我正在使用 cron 作业,但它根本不起作用,我不想使用它,我想使用 /etc/init.d/。
这是我的 /etc/init/xxx.conf 中的 file.conf
description "file start script"
author "sijan <[email protected]>"
exec python file.py start
exec sleep 10
exec ifconfig ip0 11.0.2.251
exec ip=`ifconfig ip0 | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`
exec echo $ip >>/tmp/ip.log
我已在 /etc/init.d/file.py 中添加了 python 文件
由于我对系统层面还很陌生,我可能没有遵循正确的程序来执行此操作,但是任何有关如何进行的想法都非常感谢。我非常希望修复这个问题并学习
答案1
将脚本放入/etc/rc.local
。系统启动时,脚本将以 root 身份运行。它也适用于 Raspberry Pi,正如您在评论中指出的那样。
在你的情况下,你想运行它python /path/to/script.py &
这是我的示例rc.local
文件,我使用相同的方法运行电池和温度监控脚本
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/home/xieerqi/bin/batmon.sh &
/home/xieerqi/bin/preventShutdown.sh &
/home/xieerqi/bin/sh/temperature.sh &
答案2
你也可以使用 cron 执行此操作将以下内容添加到您的定时任务:
@reboot username python /python/to/file.py
您可以或可能不需要用户名在那里。
[编辑]
这种方法有两个注意事项:
- 守护
cron
进程必须正在运行(正常情况下是这样的); - 脚本或 crontab 文件必须包含所需的环境变量(如果有)。
答案3
看起来您需要在电子邮件地址后结束字符串引号,否则其他代码将被视为作者字符串的一部分。