在Ubuntu启动时运行Python脚本

我有一个简短的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,但你明白了。)

我已经尝试了以下所有,没有运气:

没有任何工作 我感觉我错过了一些简单的东西。 有任何想法吗? (如果我只是从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 startsudo 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文件的代码, 下面是步骤:

  • 打开短跑(边栏中的第一个图标)。
  • 然后键入启动应用程序并打开该应用程序。
  • 这里点击右边的添加按钮
  • 在那里填写细节并在命令区浏览你的Python文件并点击确定。
  • 通过重新启动系统进行测试。 完成。 请享用 !!