Я получил:
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
что я делаю не так?
ExecStart=/usr/bin/curl'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
Вы определяете переменную ExecStart и пытаетесь запустить --header . Синтаксис похож на
foo=bar some_command option1 option2
Вы используете полный путь /usr/bin/curl . Если вы не знаете, что это правильно, и вам нужен полный путь, вы должны полагаться на свой $PATH и использовать просто curl .
У вас нет места после curl .
Вы пытаетесь запустить curl как root.
Вы запускаете команду (например, случайный код из Интернета?) Вы, очевидно, не понимаете, как корень .
Чинить:
ExecStart= , это часть синтаксиса systemd.curl .curl .Это будет как
curl 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
где <$xxxx:$xxx> и <hostname> по-прежнему являются заполнителями, которые необходимо заменить на что-то допустимое.
Если вы хотите запустить это из командной строки, а не из systemd , вы должны запустить его так:
curl 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'