Я пытаюсь выставить небольшую Java-программу в сеть для демонстрационных целей. Я использую конфигурацию xinetd и создаю сервис, и могу заставить все работать. За исключением случаев, когда в имени пути есть пробел, который я передаю java:

service demo
{
    disable     = no
    log_type    = FILE /var/log/xinetd.log
    type        = UNLISTED
    port        = 8080
    socket_type = stream
    protocol    = tcp
    wait        = no
    server      = usr/bin/java
    server_args = -cp /home/demo/example name/bin DemoMain /home/demo/example name/log.txt
#                                       ^                                    ^
}

Когда я запускаю его в терминале, он работает как положено:

me@host:~/$ java -cp /home/demo/example\ name/bin DemoMain /home/demo/example\ name/log.txt

(обратите внимание на пробелы с обратной косой чертой). Однако я не могу заставить его работать на xinetd (без переименования папки во что-то без пробела). Я попытался избежать обратной косой черты, двойной обратной косой черты, завернуть путь в кавычки - ничего.

Страница man для xinetd.conf упоминает в разделе BUGS, что нельзя помещать пробелы в переменные окружения. Есть ли подобное ограничение для server_args?

0