Файлы журнала не создаются, когда java-программа запускается через модуль systemd в Ubuntu

ОС -> Ubuntu 16.04 x64

Когда следующая java-программа запускается как <user> из командной строки, она создает файлы журнала в каталоге внутри </home/user>, как настроено в файле свойств ведения журнала java util, переданном в качестве системного параметра.

nohup java -Duser.home=<home/<user>> -Djava.util.logging.config.file=/home/<user>/<path_to_logging.properties> -cp <jarname>.jar <MainClass> >> /dev/null 2>>/dev/null &

Однако, когда та же программа запускается как следующий модуль systemd, программа работает нормально (можно увидеть вывод, когда он передается в файл вместо / dev / null), но файлы журнала не создаются !!

[Unit]
Description=Daemon Desc

[Service]
WorkingDirectory=/home/<user>/<app>
ExecStart=/usr/share/java -Duser.home=/home/<user> -Djava.util.logging.config.file=/home/<user>/<path_to_logging.properties> -cp <jarname>.jar <MainClass>

User=<user>

[Install]
WantedBy=multi-user.target

Любая помощь будет высоко ценится.


person Shridhar Swaminathan    schedule 26.09.2016    source источник
comment
Похоже, это может быть проблема с правами доступа к файлам. Когда он запускается из systemd, запускается ли он от имени пользователя, у которого есть разрешение как на чтение свойств ведения журнала, так и на запись в любой файл журнала, указанный в свойствах?   -  person VGR    schedule 26.09.2016
comment
@VGR Я указал запускать модуль как Пользователь = ‹user›, у которого есть разрешения как, logging.properties - ›-rw-r--r-- <user> <user> и каталог журнала -› drwxrwxr-x <user> <user>   -  person Shridhar Swaminathan    schedule 26.09.2016


Ответы (1)


Исправлено путем вызова сценария оболочки, который запускает программу Java, а не вызывает Java непосредственно из службы systemd. По-прежнему неясно, почему при этом не создаются файлы журнала.

person Shridhar Swaminathan    schedule 02.10.2016
comment
Я встретил ту же ошибку. Я также запускаю java-программу через сценарий оболочки, но файл журнала по-прежнему не создается. Моя структура журналов - log4j. Он работает, когда я запускал java-программу через оболочку scirpt. но он не работал, когда работал как сервис systemd. Очень опасно. Есть ли у вас какое-либо представление об этой проблеме? - person DoubleQueens; 13.10.2020
comment
@DoubleQueens вы вызывали сценарий оболочки из systemd? - person Shridhar Swaminathan; 10.11.2020