Yo obtengo:
root@dm820:~# ExecStart=/usr/bin/curl'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
-sh: --header: command not found
Respuesta1
¿Qué hago mal?
ExecStart=/usr/bin/curl'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
Estás definiendo
ExecStart
variable e intentando ejecutarla--header
. La sintaxis es comofoo=bar some_command option1 option2
Estás usando la ruta completa
/usr/bin/curl
. A menos que sepa que es correcto y necesita la ruta completa, debe confiar en su$PATH
y usar solocurl
.No tienes espacio después
curl
.Estás intentando ejecutar
curl
como root.Estás ejecutando un comando (¿como un código aleatorio de Internet?)aparentemente no entiendescomo raíz.
Arreglar:
- Escribe 100 veces "No ejecutaré comandos que no entiendo como root". :)
- Drop
ExecStart=
, es parte de la sintaxis de systemd. - Utilice sólo
curl
. - Pon un espacio después
curl
.
será como
curl 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
donde <$xxxx:$xxx>
y <hostname>
siguen siendo marcadores de posición, debe cambiarlos por algo válido.
Respuesta2
Si desea ejecutar esto desde la línea de comando y no desde systemd
, debe ejecutarlo así:
curl 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'