systemd
não é um pega-tudo. Não será a solução para o problema every , mas oferece muitas ferramentas para ajudá-lo a resolver problemas. A utilidade dessas ferramentas se resume a quão bem você pode usá-las.
Vejamos um arquivo de serviço muito básico check-time.service
(note que criei este arquivo de serviço manualmente, usando outros arquivos de serviço localizados em /usr/lib/systemd/system/
como referências):
[Unit]
Description=Checks the time every second
[Service]
Type=simple
ExecStart=/usr/bin/check-time.py
O arquivo de serviço pertence em /usr/lib/systemd/system/
ou /etc/systemd/system/
a ser usado por systemd
Linha por linha
[*]
Os cabeçalhos da seção. Estas apenas agrupam diretivas. Você pode encontrar referências às quais as diretivas pertencem onde estão as páginas systemd
man:
[Serviço] seção
A free-form string describing the unit. This is intended for use in UIs to show descriptive information along with the unit name. The description should contain a name that means something to the end user. "Apache2 Web Server" is a good example. Bad examples are "high-performance light-weight HTTP server" (too generic) or "Apache2" (too specific and meaningless for people who do not know Apache).
Configures the process start-up type for this service unit. One of simple, forking, oneshot, dbus, notify or idle.
If set to simple (the default if neither Type= nor BusName=, but ExecStart= are specified), it is expected that the process configured with ExecStart= is the main process of the service. In this mode, if the process offers functionality to other processes on the system, its communication channels should be installed before the daemon is started up (e.g. sockets set up by systemd, via socket activation), as systemd will immediately proceed starting follow-up units.
Commands with their arguments that are executed when this service is started. The value is split into zero or more command lines according to the rules described below (see section "Command Lines" below).
Resumo
Este arquivo de serviço simplesmente executaria o comando /usr/bin/check-time.py
quando iniciado. Se o comando sair, ele será considerado "morto", desde que continue a ser executado, é considerado "Ativo".
Qual a utilidade desse arquivo de serviço? Bem, não muito. Como é a única coisa que faz é permitir que você execute o script python usando systemctl start check-time.service
em vez do caminho completo normal, no entanto, há uma variedade de opções adicionais que podem ser úteis.
Opções úteis
WantedBy Se você deseja que o serviço seja iniciado na inicialização, defina WantedBy=
do seu alvo padrão.
Restart Determina quando systemd
deve reiniciar automaticamente um serviço, como "sempre" ou "em falha"
Literalmente centenas de outras opções que incluem limitar o uso de hardware, qual usuário usar para executar o processo, definir variáveis de ambiente, definir dependências e muito mais. systemd
é útil para todas as funcionalidades adicionais que fornece, não simplesmente porque pode envolver coisas.