Запустите Python script при запуске в Ubuntu
У меня есть короткий Python script, который должен запускаться при запуске - Ubuntu 13.10. Я пробовал все, что мог, но не могу заставить его работать. script:
#!/usr/bin/python
import time
with open("/home/username/Desktop/startup.txt", 'a') as f:
f.write(str(time.time()) + " It worked!")
(Фактический script немного отличается, поскольку я просто использую это для тестирования, но вы получаете идею.)
Я пробовал все следующие, без везения:
-
Поместите команду python startuptest.py
в crontab
, как @reboot
python /home/username/Documents/startuptest.py
, как в качестве обычного пользователя, так и как sudo
-
Введите команду python /home/username/Documents/startuptest.py
в /etc/rc.local
-
Открыли приложения запуска Ubuntu и поместили там команду
-
Составлено все предыдущее, поместив команду в оболочку script
и вызов этой оболочки script вместо
Ничего не работает. У меня такое чувство, что я пропустил что-то простое. Есть идеи? (script работает нормально, если я просто запускаю команду с терминала.)
Ответы
Ответ 1
Поместите это в /etc/init
(используйте /etc/systemd
в Ubuntu 15.x)
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
Ответ 2
Я делаю так:
-
Скопируйте файл 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 &
Ответ 3
Создать файл ~/.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
Это помогает мне!
Ответ 4
В подобных ситуациях, я сделал все, положив что-то вроде следующего в /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.
Ответ 5
Если вы находитесь на Ubuntu, вам не нужно писать какой-либо другой код, кроме кода файла Python. Вот шаги: -
- Открыть черту (первый значок в боковой панели).
- Затем введите Запуск приложений и откройте это приложение.
- Здесь нажмите кнопку Добавить справа.
- Заполните детали и в области команд найдите файл Python и нажмите "ОК".
- Проверьте его Перезапуск системы. Готово. Наслаждаться!!