Я получил:
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'