@Нафтули :Не лучше ли вместо этого использовать что-то подобное во всех файлах ваших сервисных модулей?
ExecStartPre=\usr\bin\sh -c "systemctl --user import-environment"
Задания, выполняемые через cron
, at
или batch
, не выполняются в той же среде выполнения, что и на вашем рабочем столе. Ни одно из ваших изменений PATH
или других настроек переменных среды не распространяется автоматически на ваше задание cron
. Например, $DISPLAY
нет, поэтому программы с графическим интерфейсом требуют специальной обработки (читатьman xhost
).
Можно установить переменные среды для всех своих cron
заданий в файле crontab
. Прочтите man 5 crontab
.
Посмотрите на результаты echo "=== set ===";set;echo "=== env ===";env | sort;echo "=== alias ===";alias
в каждой из ваших сред.
Поскольку часть command
строки crontab
по умолчанию интерпретируется /bin/sh
, синтаксис которой проще, чем /bin/bash
, я рекомендую использовать command
как вызов bash
скрипт (исполняемый, смонтированный, начинается с #!/bin/bash
), который настраивает среду, затем вызывает нужную программу.