Как разрешить Linux (малиновому) запускать скрипт Python при включении плагина?

У меня есть скрипт Python (namely /home/pi/x.py). И я пробовал много способов, чтобы программа, например:

#!/bin/bash
# /etc/init.d/mystart  
### BEGIN INIT INFO
# Provides: Python 

(Я думаю, я здесь (предоставляет: Python)?)

# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: my python initscript
# Description: no description
### END INIT INFO   case "$1" in
    start)
        echo "Starting x.py "
        /home/pi/x.py &
        ;;
    stop)
        echo "Stopping x.py"
        #killall x.py
        kill $(ps aux | grep -m 1 'python /home/pi/x.py' | awk '{ print $2 }')
        ;;
    *)
        echo "Usage: service x.py start|stop"
        exit 1
        ;; esac exit 0

Я изменил этот bash по сравнению с его первоначальной формой и поместил в

/etc/inti.d/mystart

sudo chmod +x /etc/init.d/mystart

sudo update-rc.d mystart defaults

Однако, когда я пытаюсь:sudo service mystart start

Выходит какая-то ошибка! [Unit mystart.service failed to load: No such file or directory.]

Итак, я заблокирован здесь, я не знаю, как запустить x.py, пока питание включено.


person Microos    schedule 26.01.2016    source источник
comment
не каждый скрипт может работать как служба: stackoverflow.com/questions/1603109/   -  person furas    schedule 26.01.2016


Ответы (2)


Я использовал crontab, и он работает хорошо

Шаг 1:

sudo crontab -e

Шаг 2: заполните его

@reboot python /home/pi/x.py &

Шаг 3. Сохраните его и перезагрузите

person Trevor    schedule 26.01.2016

Откройте /etc/профиль

sudo nano /etc/profile

Прокрутите вниз и добавьте следующую строку:

sudo python /home/pi/x.py

где «/home/pi/x.py» — абсолютный путь к вашему скрипту. Введите «Ctrl + X», чтобы выйти, затем «Y», чтобы сохранить, а затем дважды «Enter». Теперь перезагрузитесь и проверьте. скрипт python теперь должен запускаться при запуске

Настройка автоматического входа (для выполнения скрипта без вмешательства пользователя)

  • Откройте /etc/inittab

    судо нано /etc/inittab

  • Найдите эту строку

    1:2345:возрождение:/sbin/getty 115200 tty1

  • Добавьте символ # в начало строки, чтобы отключить его, чтобы он выглядел как

    #1:2345:возрождение:/sbin/getty 115200 tty1

  • Под этой строкой добавьте следующее:

    1:2345:возрождение:/bin/login -f pi tty1 /dev/tty1 2>&1

где «пи» — имя пользователя. Введите «Ctrl + X», чтобы выйти, затем «Y», чтобы сохранить, а затем дважды «Enter». Теперь при запуске raspberrypi автоматически войдет в систему с пользователем pi и выполнит ваш скрипт.

Что делать, если у вас нет файла /etc/inittab?

Я предполагаю, что вы используете последнюю версию Raspian-Image (Джесси). Этот основан на Debian 8 (jessie), где изменилась система инициализации. Решение для автоматического входа уже упоминалось здесь

Источник: http://www.raspberrypi-spy.co.uk/2015/02/how-to-autorun-a-python-script-on-raspberry-pi-boot/

person Abdul Rauf    schedule 26.01.2016
comment
Привет, @Абдул Рауф Муджахид! Ваш ответ заставляет меня идти ближе к моей цели! спасибо! Однако я должен войти в свою учетную запись, чтобы позволить x.py выполнить эту работу! Как я могу запустить скрипт, когда я подключаю питание? - person Microos; 26.01.2016
comment
Я пробовал это, но у меня нет файла /etc/inittab - person Microos; 26.01.2016
comment
@Microos проверьте Что делать, если у вас нет /etc/inittab? часть моего ответа - person Abdul Rauf; 26.01.2016