[Unit] Description=Totvs Appserver Daemon After=network.target # Se o AppServer depender de algum banco de dados local # Adicione aqui, por exemplo: After=postgresql.service mariadb.service [Service] # O AppServer é uma aplicação de longa duração. Type=forking # O caminho completo para o executável principal do AppServer ExecStart=/bin/bash -c "export LD_LIBRARY_PATH=${INSTALL_PATH}/protheus/bin/appserver; exec ${INSTALL_PATH}/protheus/bin/appserver/appsrvlinux daemon" # O comando para parar o serviço (enviando o sinal SIGTERM -15) ExecStop=/bin/kill -TERM $MAINPID # Arquivo PID que o systemd deve monitorar. # É uma prática do systemd usar o PID gerado pelo processo principal, # mas se o AppServer forçar a gravação de um PIDfile específico, use o seguinte: PIDFile=/var/run/appserver.pid # Usuário e Grupo com que o serviço deve rodar (MUITO IMPORTANTE!) # Substitua 'appserver_user' e 'appserver_group' pelo usuário/grupo correto, # ou comente se for rodar como 'root' (o que NÃO é recomendado para produção). # User=appserver_user # Group=appserver_group # Define variáveis de ambiente (como a LD_LIBRARY_PATH no script antigo) Environment=LD_LIBRARY_PATH=${INSTALL_PATH}/protheus/bin/appserver # Limites de recursos (simulando os antigos ulimit) # Adicione aqui os limites necessários, se aplicável, por exemplo: # LimitNOFILE=32768 # LimitSTACK=1M # LimitAS=2G # Reinicia automaticamente em caso de falha Restart=on-failure RestartSec=5s [Install] # Habilita o serviço nos níveis 2, 3, 4 e 5 (Multi-user system) WantedBy=multi-user.target