Вы можете использовать set -x
, чтобы увидеть, что делает оболочка:
set -x
$(echo 'a')
++ echo a
+ a
Оболочка выполняет echo a
и помещает вывод в командную строку. Это то же самое, как если бы вы попытались выполнить эту командную строку:
a
Оболочка ищет команду a
в пути (и даже раньше в списках функций, псевдонимов и хэшей ), не находит и поэтому выдает ошибку.
Работает, если вывод является корректной командой:
$(echo 'ls')
Ваш вопрос выглядит так: Как установить ulimits для службы с помощью systemd?-ограничение количества открытых файлов должно быть указано в сценарии запуска -up сервера Apache Tomcat. Пример :Предполагая, что машина с Ubuntu использует systemd, можно увеличить лимит открытых файлов для java-процесса tomcat до 65000, отредактировав файл сценария start -up следующим образом:
/etc/systemd/system/tomcat.service:
[Unit]
Description=Tomcat Service
After=syslog.target network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
LimitNOFILE = 65000 <---------
....
[Install]
WantedBy=multi-user.target
Перезагрузите демонов и перезапустите сервер tomcat...
systemctl daemon-reload
systemctl restart tomcat
Проверить, что-то похожее с...
pstree -pu |grep tomcat
|-java(23638,tomcat)-+-{java}(23645)
grep open /proc/23638/limits
Max open files 65000 65000 files