[Unit] Description=OpenSearch - ${OS_SERVICE_NAME} Wants=network-online.target After=network-online.target [Service] Type=forking PrivateTmp=true Environment="JAVA_HOME=${OS_SERVICE_JAVA_HOME}" Environment="OS_HOME=${OS_SERVICE_PATH}" Environment="OS_PATH_CONF=${OS_SERVICE_CONF}" Environment="PID_DIR=${OS_SERVICE_PID_FOLDER}" Environment="OS_SD_NOTIFY=true" RuntimeDirectory=${OS_SERVICE_DIR_NAME} WorkingDirectory=${OS_SERVICE_PATH} User=${OS_SERVICE_USER} Group=${OS_SERVICE_GROUP} ExecStart=${OS_SERVICE_PATH}/bin/${OS_SERVICE_EXECUTABLE} -d -p ${OS_SERVICE_PID_FILE} # StandardOutput is configured to redirect to journalctl since # some error messages may be logged in standard output before # OpenSearch logging system is initialized. OpenSearch # stores its logs in /var/log/opensearch and does not use # journalctl by default. If you also want to enable journalctl # logging, you can simply remove the "quiet" option from ExecStart. StandardOutput=journal StandardError=inherit # Specifies the maximum file descriptor number that can be opened by this process LimitNOFILE=65535 # Specifies the maximum number of processes LimitNPROC=4096 # Specifies the maximum size of virtual memory LimitAS=infinity # Specifies the maximum file size LimitFSIZE=infinity # Disable timeout logic and wait until process is stopped TimeoutStopSec=0 # SIGTERM signal is used to stop the Java process KillSignal=SIGTERM # Send the signal only to the JVM rather than its control group KillMode=process # Java process is never killed SendSIGKILL=no # When a JVM receives a SIGTERM signal it exits with code 143 SuccessExitStatus=143 [Install] WantedBy=multi-user.target