我有一个简短的Python脚本,需要在启动时运行 – Ubuntu 13.10。 我已经尝试了所有我能想到的东西,但不能让它运行。 剧本:
#!/usr/bin/python import time with open("/home/username/Desktop/startup.txt", 'a') as f: f.write(str(time.time()) + " It worked!")
(实际的脚本有点不同,因为我只是用它来进行testing,但你明白了。)
我已经尝试了以下所有,没有运气:
把命令python startuptest.py
放在crontab
,作为@reboot python /home/username/Documents/startuptest.py
,作为普通用户和sudo
将命令python /home/username/Documents/startuptest.py
放入/etc/rc.local
打开Ubuntu的启动应用程序并把命令放在那里
完成上述所有操作,将命令放入shell脚本中,然后调用该shell脚本
没有任何工作 我感觉我错过了一些简单的东西。 有任何想法吗? (如果我只是从terminal运行命令,脚本运行良好。)
把它放在/etc/init
(在Ubuntu 15.x中使用/etc/systemd
)
mystartupscript.conf
start on runlevel [2345] stop on runlevel [!2345] exec /path/to/script.py
通过放置这个conf文件,你可以挂载到启动时运行服务的ubuntu的upstart服务。
手动启动/停止使用sudo service mystartupscript start
和sudo service mystartupscript stop
我这样做:
将python文件复制到/ bin:
sudo cp -i /path/to/your_script.py /bin
添加一个新的Cron作业:
sudo crontab -e
滚动到底部并添加以下行(在#'s
之后):
@reboot python /bin/your_script.py &
行尾的“&”表示该命令在后台运行,不会停止系统启动。
测试它:
sudo reboot
例如:
添加这个文件到你的桌面: test_code.py (运行它来检查它是否适合你)
from os.path import expanduser import datetime file = open(expanduser("~") + '/Desktop/HERE.txt', 'w') file.write("It worked!\n" + str(datetime.datetime.now())) file.close()
运行以下命令:
sudo cp -i ~/Desktop/test_code.py /bin
sudo crontab -e
添加以下行并保存它:
@reboot python /bin/test_code.py &
创建文件〜/ .config / autostart / MyScript.desktop
[Desktop Entry] Encoding=UTF-8 Name=MyScript Comment=MyScript Icon=gnome-info Exec=python /home/your_path/script.py Terminal=false Type=Application Categories= X-GNOME-Autostart-enabled=true X-GNOME-Autostart-Delay=0
它帮助到我!
在类似的情况下,通过在/etc/rc.local中加入如下内容,
cd /path/to/my/script ./my_script.py & cd - echo `date +%Y-%b-%d_%H:%M:%S` > /tmp/ran_rc_local # check that rc.local ran
这已经在Fedora的多个版本和Ubuntu 14.04 LTS上运行,用于python和perl脚本。
如果你在Ubuntu上,你不需要写任何其他的代码,除了你的Python文件的代码, 下面是步骤: