Подтвердить что ты не робот

Запустите 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 работает нормально, если я просто запускаю команду с терминала.)

4b9b3361

Ответ 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 и нажмите "ОК".
  • Проверьте его Перезапуск системы. Готово. Наслаждаться!!