#python-3.x #sh #ros #systemd
#python-3.x #sh #ros #systemd
Вопрос:
Я пытаюсь запустить скрипт python, который использует rospy. Обычно, когда этот скрипт вызывается через командную строку python3 npnt_main.py
, он работает нормально. Но при запуске через службу systemd я получаю следующую ошибку:
ModuleNotFoundError: No module named 'rospy'
Служба systemd выглядит следующим образом:
[Unit]
Description=Npnt Compliance service
[Service]
WorkingDirectory=/srv/maverick/code/maverick/custom-modules/NpntCompliance/catkin_ws/src/npnt_test/
ExecStart=/bin/sh /srv/maverick/code/maverick/custom-modules/NpntCompliance/catkin_ws/src/npnt_test/run/run_npnt.sh amp;
User=root
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
Сценарий run_npnt.sh заключается в следующем:
#!/usr/bin/env bash
# To start npnt_main and handle crashes
BASE="/srv/maverick/code/maverick/custom-modules/NpntCompliance/catkin_ws/src/npnt_test"
echo "Starting npnt"
LOGFILE="$BASE/log/npnt_syslogs.log"
[ -e $LOGFILE ] amp;amp; rm $LOGFILE > /dev/null 2>amp;1
echo "Old Logfile: $LOGFILE deleted"
echo "Running npnt"
python3 $BASE/scripts/npnt_main.py > $LOGFILE
ret=$?
if [ $ret -ne 0 ]; then
echo "npnt_main crashed. Restarting"
fi
Как я могу запустить его через службу systemd без получения ImportError?