Я пытаюсь запустить скрипт сразу после включения X-сервера моего Raspberry pi, потому что он работает с графическим интерфейсом.
После долгих поисков я обнаружил, что могу запустить скрипт в следующем файле
.config/ LXSession / LXDE-пи / автостарт
и вуа-ля! Он будет работать автоматически, когда ОС закончит загрузку пользовательского интерфейса. Моя идея состояла в том, чтобы запустить оболочку, которая будет запускать скрипт для меня в тот момент.
Я изменил исходный код в автозапуске следующим образом (только что вставил часть PULSEOX):
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@point-rpi
@echo !======================PULSEOX SERVICE START===========================!
@lxterminal --command="/bin/bash -c '/home/pi/Desktop/start-pulseox.sh;/bin/bash'"
@echo !=======================PULSEOX SERVICE END ===========================
Однако, когда я перезагружаю свой Pi, я не мог видеть ни терминал, ни мое приложение. После долгих исследований я обнаружил, что журнал сеанса автозапуска хранится в
sudo nano .cache/lxsession/LXDE-pi/run.log
и когда я читаю его, кажется, что он распечатал использование терминалов , что должно означать, что я не передал правильный синтаксис.
<Other Useless stuff......>
!======================PULSEOX SERVICE $
** Message: app.vala:76: Launching lxterminal
** Message: app.vala:76: Launching echo
!=======================PULSEOX SERVICE END ===========================
** Message: options.vala:107: Create build-in Clipboard
** Message: main.vala:442: Check keymap_mode (null)
** Message: app.vala:76: Launching /usr/bin/ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-pkJCZSNHXNME/agent.487; export SSH_AUTH_SOCK;
SSH_AGENT_PID=489; export SSH_AGENT_PID;
echo Agent pid 489;
** Message: app.vala:130: point-rpi exit with this type of exit: 0
** Message: app.vala:139: Exit normal, don't reload
** Message: app.vala:130: echo exit with this type of exit: 0
** Message: app.vala:139: Exit normal, don't reload
** Message: app.vala:130: echo exit with this type of exit: 0
**Usage:
lxterminal [Options...] - LXTerminal is a terminal emulator
Options:
-e, --command=STRING Execute the argument to this option inside the$
--geometry=COLUMNSxROWS Set the terminal's size
-l, --loginshell Execute login shell
-t, -T, --title=,
--tabs=NAME[,NAME[,NAME[...]]] Set the terminal's title
--working-directory=DIRECTORY Set the terminal's working directory
--no-remote Do not accept or send remote commands
-v, --version Version information**
** Message: app.vala:130: lxterminal exit with this type of exit: 0
** Message: app.vala:139: Exit normal, don't reload
** Message: x-terminal-emulator has very limited support, consider choose another
** Message: x-terminal-emulator has very limited support, consider choose another$
Openbox-Message: Unable to find a valid menu file "/usr/share/lxde/openbox/menu.x$
** Message: Connecting ...
** Message: Status changed to down
** (lxpanel:474): CRITICAL **: dhcpcd_open: Inappropriate ioctl for device
Unit pt-device-manager.service could not be found.
** (lxpanel:474): WARNING **: Battery 0 not found
** (lxpanel:474): WARNING **: Battery 0 not found
** (lxpanel:474): WARNING **: lxpanel: can't load ptbatt plugin
** Message: Status changed to opened
** Message: Connected to dhcpcd-6.11.5
** Message: Status changed to connected
** Message: eth0: CARRIER
** Message: eth0: Configured 10.42.0.73/24
** Message: bt: Name org.bluez unowned on DBus
** Message: va: Name org.bluez unowned on DBus
Может ли кто-нибудь помочь мне выяснить, что не так?
Спасибо!
РЕДАКТИРОВАТЬ
Я могу запустить вызов lxterminal на другом терминале так же, как и я, и это работает. Однако внутри автозапуска я не могу =(