# Como ver e gerenciar serviços na VPS via SSH

> No terminal da VPS, use systemctl status para ver se um serviço está rodando, systemctl restart para reiniciar e systemctl enable para ligar junto com a VPS. Para ver os logs de um serviço, use journalctl -u.

Os programas que ficam rodando na VPS, como o servidor web e o banco de dados, são serviços. Você cuida deles com o `systemctl`: `status` para ver como estão, `restart` para reiniciar e `enable` para ligarem sozinhos com a VPS. Os logs de cada serviço saem com `journalctl -u`.

## Antes de começar
- Acesse a VPS por SSH. Se ainda não sabe como, veja "Como acessar sua VPS por SSH pelo terminal (Linux, Windows e Mac)".
- Os comandos funcionam no Ubuntu e no Debian, os sistemas das VPS da StayCloud.
- Os exemplos supõem que você entrou como `root`. Com outro usuário, coloque `sudo` na frente de cada comando.
- Tenha o nome do serviço. Os exemplos usam o `nginx`; troque pelo seu, como `apache2`, `mysql`, `mariadb`, `docker` ou `ssh`.

## Ver os serviços da VPS
1. Liste os serviços que estão rodando:
   ```
   systemctl list-units --type=service --state=running
   ```
   Resultado: aparece a lista dos serviços ativos, um por linha, com o nome terminado em `.service`. Aperte `q` para sair da lista.
2. Liste os serviços que falharam:
   ```
   systemctl --failed
   ```
   Resultado: aparece a lista dos serviços com erro, ou `0 loaded units listed` se nenhum falhou.

## Ver o status de um serviço
1. Rode:
   ```
   systemctl status nginx
   ```
   Resultado: aparece um resumo do serviço. A linha `Active:` diz o estado: `active (running)` quer dizer que está rodando; `inactive (dead)`, que está parado; `failed`, que deu erro. Embaixo, aparecem as últimas linhas do log.
2. Aperte `q` para sair.
   Resultado: o prompt da VPS volta.

## Iniciar, parar e reiniciar
Cada comando é rodado sozinho, quando você precisar:

1. Para iniciar um serviço parado:
   ```
   systemctl start nginx
   ```
   Resultado: o comando não mostra nada quando dá certo.
2. Para reiniciar um serviço (por exemplo, depois de mudar a configuração):
   ```
   systemctl restart nginx
   ```
   Resultado: o serviço para e liga de novo. Durante alguns segundos, ele fica fora do ar.
3. Para recarregar a configuração sem derrubar o serviço, quando ele aceita:
   ```
   systemctl reload nginx
   ```
   Resultado: a configuração nova passa a valer sem interromper quem está usando. Se o serviço não aceitar, aparece um erro e você pode usar o `restart`.
4. Para parar um serviço:
   ```
   systemctl stop nginx
   ```
   Resultado: o serviço para e fica fora do ar até ser iniciado de novo.

Cuidado com o serviço `ssh`: se você parar ou quebrar a configuração dele, perde o acesso pelo terminal. Nesse caso, entre pelo Console SSH do painel.

## Ligar o serviço junto com a VPS
1. Para o serviço ligar sozinho sempre que a VPS reiniciar:
   ```
   systemctl enable nginx
   ```
   Resultado: aparece uma linha como `Created symlink ...`, ou nada, se ele já estava habilitado.
2. Para conferir:
   ```
   systemctl is-enabled nginx
   ```
   Resultado: aparece `enabled`. Para tirar o serviço da inicialização, use `systemctl disable nginx`.

## Ver os logs de um serviço
1. Veja as últimas 50 linhas do log:
   ```
   journalctl -u nginx -n 50
   ```
   Resultado: aparecem as mensagens mais recentes do serviço, com data e hora.
2. Veja só o que aconteceu na última hora:
   ```
   journalctl -u nginx --since "1 hour ago"
   ```
   Resultado: aparecem as mensagens do período.
3. Acompanhe o log ao vivo:
   ```
   journalctl -u nginx -f
   ```
   Resultado: as linhas novas aparecem conforme acontecem. Aperte `Ctrl` + `C` para parar.

Alguns programas também gravam logs em arquivos próprios, em `/var/log`. O nginx, por exemplo, usa `/var/log/nginx/error.log`.

## Como saber se deu certo
Rode `systemctl status nginx` e confira a linha `Active: active (running)`. Para saber se ele volta sozinho depois de um reinício, `systemctl is-enabled nginx` deve mostrar `enabled`.

## Se algo der errado
### "Unit nginx.service could not be found."
Causa: o nome do serviço está errado ou o programa não está instalado. Solução: confira o nome na lista de `systemctl list-units --type=service`. No Ubuntu e no Debian, o Apache se chama `apache2`.

### "Job for nginx.service failed because the control process exited with error code."
Causa: o serviço não conseguiu iniciar, quase sempre por erro na configuração ou porta já em uso. Solução: veja o motivo com `journalctl -u nginx -n 50`. No nginx, teste a configuração com `nginx -t` antes de reiniciar.

### O serviço para sozinho de vez em quando
Causa: pode ser falta de memória: o sistema encerra processos quando a RAM acaba. Solução: veja o consumo com `free -h` e o `top`. Se a memória está sempre no limite, aumente o plano da VPS.

## Relacionados
- Como ver o consumo de CPU, memória e disco da VPS via SSH
- Como instalar programas na VPS via SSH
- Como reiniciar sua VPS pelo painel
- Como acessar sua VPS pelo Console SSH do painel
- Comandos básicos de Linux para usar na sua VPS via SSH

---
Fonte: https://help.staycloud.com/artigos/como-ver-e-gerenciar-servicos-na-vps-via-ssh
