Estou tentando criar uma unidade systemctl, que só será iniciada se outra estiver ativa. Pelo que eu sei, isso pode ser feito especificando um Requisite
campo. Assim, configurei minha unidade assim:
[Unit]
Description=Force clients with mismatching IPs to reconnect
[email protected]
[Service]
Type=oneshot
ExecStart=/etc/openvpn/kicker/kicker.py
TimeoutSec=15
No entanto, quando usei systemctl stop openvpn@server
e systemctl start my-unit
, obtive os seguintes logs:
Starting openvpn-kicker.service - Force clients with mismatching IPs to reconnect...
Dependency failed for openvpn-kicker.service - Force clients with mismatching IPs to reconnect.
openvpn-kicker.service: Job openvpn-kicker.service/start failed with result 'dependency'.
kicker.py[1026]: Traceback (most recent call last):
kicker.py[1026]: File "/etc/openvpn/kicker/kicker.py", line 16, in <module>
kicker.py[1026]: manage.connect(Manage_Path)
kicker.py[1026]: FileNotFoundError: [Errno 2] No such file or directory
Main process exited, code=exited, status=1/FAILURE
openvpn-kicker.service: Failed with result 'exit-code'.
Então, basicamente, a unidade falha na verificação de requisitos, mas executa um script em "ExecStart" de qualquer maneira - daí os erros do python. A intenção é que funcione dessa maneira e tenho algo errado ou é um bug? Se relevante, o sistema operacional é Ubuntu 22.04