Failed to execute operation: No such file or directory
¿Porque un systemctl enable myservice.service da este error?
Hoy es unos de esos días donde algo tan simple deja de funcionar. Te pongo en contexto: Un worker service creado en .NET 7.0 encargado de interactuar con un servicio de telefónia Asteriks y una API de .NET
Este servicio funciona correctamente en el servidor linux que cuenta con CentOS y una distro de «FreePBX». Por lo que se decidió pasar a servicio la ejecución del mismo.
Para ello, de acuerdo a la documentación de .NET tan solo con el siguiente archivo de texto es suficiente:
Host ASP.NET Core on Linux with Nginx | Microsoft Learn
[Unit]
Description=Example .NET Web API App running on Linux
After=network.target
[Service]
WorkingDirectory=/var/ami
ExecStart=/usr/bin/dotnet /var/ami/WorkerServiceAMI.dll
Restart=always
Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-ami
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
Una vez generado el mismo tan solo al ejecutar systemctl enable myservice.service debería funcionar pero recibía constantemente este error:
Failed to execute operation: No such file or directory
Luego de romperme la cabeza y no encontrar la solución en Google me puse analizar el porque no encontraba el archivo. Y entendí lo siguiente: Systemctl es parte del administrador de servicios del sistema, por lo tanto busca los archivos de forma predeterminada en /etc/systemd/system o /usr/lib/systemd/system.
Solución:
Copia el archivo dentro de esa ubicación y asunto arreglado.
Espero que te sirva este dato.