Запускать скрипт bash только при локальном входе в систему, но не при подключении к нему через ssh - PullRequest
0 голосов
/ 08 марта 2019

Я собрал IoT-коробку поверх Rasbian Stretch Lite.Я хочу, чтобы скрипт запускался при локальном входе, но не при использовании SSH.

Когда я помещаю скрипт в ~/.bashrc, он запускается как локально, так и по SSH.

/etc/rc.local itпроисходит сбой, потому что он использует кадровый буфер, происходит до входа в систему

Настройка в crontab с @reboot происходит до входа в систему

systemctl То же самое происходит до входа в систему.

Так что я быхорошо, используя ~/.bashrc, если бы я мог проверить, подключен ли я, используя SSH или локально, или есть другой способ?

это просто autostart.sh сценарий.

Я обнаружил, что положить10.sh в /etc/profile.d/10.sh
if ["tty" = "/ dev / tty1"];затем
bash "/home/pi/config/licence.sh"
fi

Работает

1 Ответ

0 голосов
/ 08 марта 2019

При успешном соединении OpenSSH устанавливает несколько переменных среды.Попробуйте что-то вроде

case $SSH_CONNECTION in
  '')
    stuff to execute
    when you are not connecting
    via ssh ;;
esac

в вашем .bashrc.

Если вы хотите, чтобы что-то запускалось как ваш собственный пользователь, когда система правильно настроена и работает, возможно, запустите ее из своего личного crontab как @reboot задание, возможно, с какой-то оболочкой для обработки сигналов или опроса, чтобы удостовериться, что он ждет, пока необходимые ему ресурсы не будут доступны.

...