Как установить системные переменные в скриптах запуска - PullRequest
0 голосов
/ 24 октября 2018

Я управляю 8 сервоприводами, используя ШИМ-выходы на BeagleBone.При запуске имена ШИМ назначаются динамически, поэтому они меняются от загрузки к загрузке, чтобы узнать, какой вывод соответствует тому, какой ШИМ я написал этот сценарий:

    #!/bin/sh

    # match BeagleBone PWMCHIP{n} with available pwm controllers
    for i in $(/bin/ls /sys/class/pwm); do
        link=$(/bin/readlink /sys/class/pwm/$i)
        case "$link" in
            *48300100*) BBPWM0=$i;;
            *48300200*) BBPWM1=$i;;
            *48302200*) BBPWM2=$i;;
            *48304100*) BBPWM3=$i;;
            *48304200*) BBPWM4=$i;;
        esac
    done

    export BBPWM0
    export BBPWM1
    export BBPWM2
    export BBPWM3
    export BBPWM4

    echo "PWM0 = $BBPWM0" > /home/ormund/servo.log

    /home/ormund/servo-server

Система работает при запускеэто из командной строки, серво-сервер прослушивает сетевой порт и корректно перемещает сервоприводы в ответ на удаленные команды, но если я запускаю это из systemd при загрузке, происходит сбой, BBPWM0 - пустая строка, и сервер не может запуститься,Что я делаю не так?

...