问题描述
我有一个简短的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!")
(实际脚本有点不同,因为我只是将其用于测试目的,但是您明白了。)
我已经尝试了以下所有方法,但没有运气:
-
以常规用户身份和
sudo
身份将命令python startuptest.py
作为@reboot
放在
python /home/username/Documents/startuptest.pycrontab
中 -
将命令
python /home/username/Documents/startuptest.py
放在/etc/rc.local
中 -
打开Ubuntu的启动应用程序,并将命令放在那里
-
完成上述所有操作,将命令放入 shell 脚本中,然后调用该 shell 脚本
没用。我感到自己缺少一些简单的东西。有任何想法吗? (如果我只是从终端运行命令,则脚本可以正常运行。)
最佳回答
将其放在/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
完成
次佳回答
Instructions
-
将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 &
-
现在重新启动计算机,您应该在桌面上找到一个新文件:
HERE.txt
第三种回答
如果您使用的是Ubuntu,则除了Python文件的代码外,无需编写其他任何代码,以下是步骤:-
-
打开破折号(侧边栏中的第一个图标)。
-
然后键入启动应用程序并打开该应用程序。
-
在这里单击右侧的添加按钮。
-
在其中填充详细信息,并在命令区域中浏览Python文件,然后单击“确定”。
-
通过重新启动系统进行测试。完成。请享用 !!
第四种回答
使用以下命令创建文件〜/.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
它帮助到我!