Запуск терминала и ввод команд при запуске (Raspberry Pi) - PullRequest
1 голос
/ 31 октября 2019

При запуске я пытаюсь заставить открытый терминал Pi запустить исходную команду «source env / bin / activ», а затем выполнить команду «google-assistant-demo» все время, пока терминал еще открыт. Эта часть крайне важна. поскольку используемое мной программное обеспечение для разработки помощника Google требует, чтобы консоль оставалась открытой.

Это продукт личного помощника, которым я пользуюсь, и я попытался создать исполняемый скрипт sh при запуске, но он может выполнить только одну командуи после этого терминал закрывается.

source env / bin / activ

google-assistant-demo

Когда я пытаюсь отредактировать файл конфигурации запуска, терминал открывается на секундуи мгновенно закрывается.

1 Ответ

0 голосов
/ 31 октября 2019

Выполнение скрипта при запуске

Здесь вы можете найти страницу, полную замечательных решений для запуска скрипта при загрузке системы. Внутри скрипта вы можете делать практически все, что вы хотите (например, выполнить команду, о которой вы говорили source env/bin/activate). Здесь еще одна полезная ссылка.

Как запустить программу Linux при запуске

2 января 2017 г. Tim How To, Raspberry Pi


Ниже приведены инструкции по запуску программы или сценария при загрузке на компьютере с Linux, использующим Systemctl. В настоящее время я использую этот запуск нескольких сервисов на моем Raspberry Pi. DigitalOcean написал статью, в которой более подробно рассказывается о Systemctl.

Запустите эту команду

sudo nano /etc/systemd/system/YOUR_SERVICE_NAME.service

Вставьте команду ниже. Нажмите Ctrl + x, затем y, чтобы сохранить и выйти

Description=GIVE_YOUR_SERVICE_A_DESCRIPTION

Wants=network.target
After=syslog.target network-online.target

[Service]
Type=simple
ExecStart=YOUR_COMMAND_HERE
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

Перезагрузить службы

sudo systemctl daemon-reload

Включить службу

sudo systemctl enable YOUR_SERVICE_NAME

Запустить службу

sudo systemctl start YOUR_SERVICE_NAME

Проверьте состояние вашего сервиса

systemctl status YOUR_SERVICE_NAME

Перезагрузите устройство, и программа / скрипт должны быть запущены. В случае сбоя будет предпринята попытка перезагрузки.

Здесь ссылка на оригинальный пост. Однако, похоже, что вы не проверяли Google (или другой) раньше: в Интернете полно такой информации, и многие из них просто потрясающие!

...