Como você definiria um ulimit em uma unidade de serviço systemd?
Esta questão de stackoverflow explica que o systemd ignora ulimits do sistema
Como seria a sintaxe para definir os seguintes ulimits?
ulimit -c
ulimit -v
ulimit -m
[Unit]
Description=Apache Solr
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
SOLR_INSTALL_DIR=/opt/solr
SOLR_ENV=/etc/default/solr.in.sh
RUNAS=solr
SOLR_PID_DIR="/var/solr"
SOLR_HOME="/opt/solr/server/solr"
LOG4J_PROPS="/var/solr/log4j.properties"
SOLR_LOGS_DIR="/opt/solr/server/logs"
SOLR_PORT="8389"
PIDFile=/var/solr/solr-8389.pid
ExecStart=/opt/solr/bin/solr start
ExecStatus=/opt/solr/bin/solr status
ExecStop=/opt/solr/bin/solr stop
Restart=on-failure
User=solr
SuccessExitStatus=143 0
[Install]
WantedBy=multi-user.target
man 5 systemd.exec
.Respostas:
Os mapeamentos dos limites systemd para ulimit
Se um ulimit estiver definido como 'ilimitado', defina-o como 'infinito' na configuração do systemd
ulimit -c unlimited
é o mesmo queLimitCORE=infinity
ulimit -v unlimited
é o mesmo queLimitAS=infinity
ulimit -m unlimited
é o mesmo queLimitRSS=infinity
Portanto, uma configuração final pareceria
Nesse caso em particular, não conheço o caminho completo do java (já que ele muda com base no tipo de servidor) e o systemd não está satisfeito com os caminhos relativos, envolvo o comando java em um simples script bash localizado em
/opt/solr/bin/solr-foo
fonte
RUNAS
eSOLR_ENV
corrigidas ou removidas. E há toda a confusão nobin/solr
script de shell que é completamente desnecessária sob um gerente de serviço.bin/solr
script inchado .exec
do script de shell.