Код: Выделить всё
ProcessBuilder builder = new ProcessBuilder().command("socat", "-", "UNIX-SENDTO:" + socketPath);Код: Выделить всё
ProcessBuilder builder = new ProcessBuilder().command("/usr/bin/socat", "-", "UNIX-SENDTO:" + socketPath);В обоих случаях я могу запустить код вручную в терминале, как пользователь MyApp , и он работает, но когда я запускаю его как системную службу, я получаю одно из этих сообщений об ошибках соответственно.
Код: Выделить всё
Failed to notify watchdog: Cannot run program "socat": error=2, No such file or directoryКод: Выделить всё
Failed to notify watchdog: Cannot run program "/usr/bin/socat": error=2, No such file or directoryУ меня есть этот файл блока:
Код: Выделить всё
[Unit]
Description=MyApp
[Service]
User=myapp
PermissionsStartOnly=true
WorkingDirectory=/opt/myapp/
Environment=DISPLAY=:0
ExecStartPre=/opt/myapp/myapp-prestart.py
ExecStart=/opt/myapp/myapp.sh
Restart=always
WatchdogSec=5
NotifyAccess=all
[Install]
WantedBy=graphical.target
< /code>
myapp.shЧто здесь может быть не так? Моей первой мыслью была среда, но это не должно быть проблемой с абсолютным путем. Есть ли что-то еще, что могло бы отличаться, когда процесс запускается SystemD? Никаких других приложений или сценариев оболочки, которые я создаю, не имеют проблем с поиском исполняемых файлов, с абсолютными путями или без него.
Подробнее здесь: https://stackoverflow.com/questions/797 ... md-service
Мобильная версия