Protawn, добро пожаловать в Unix и Linux StackExchange.
Почему скрипты работают по-разному в системе - это распространенный вопрос. Проверьте этот ответ на общий вопрос в другом месте на сайте.
Без исходного кода для ваших сценариев Python и Bash трудно догадаться, с какой разницей вы столкнулись.
Мое личное предположение состоит в том, что ваш bash
скрипт вызывает некоторые другие двоичные файлы без полных путей, и эти пути находятся в вашей оболочке $PATH
, но не по умолчанию systemd path
.
Добавьте set -x
в начало вашего bash-сценария, чтобы все действия были записаны в стандартный вывод, который будет записан в журнале systemd
. Затем, после сбоя, используйте journalctl -u your-service-name
, чтобы просмотреть журналы вашей службы и посмотреть, сможете ли вы найти последнюю команду, успешно выполненную bash. Также рассмотрите возможность использования set -e
в скрипте bash, чтобы он остановился при первой ошибке.
Несмотря на два «не по теме» «закрытых» голосования по этой теме, почему в systemd все по-другому работает, это тема для этого сайта Stack Exchange.