-1

Я получил:

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

2 ответа2

1

что я делаю не так?

ExecStart=/usr/bin/curl'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'
  1. Вы определяете переменную ExecStart и пытаетесь запустить --header . Синтаксис похож на

    foo=bar some_command option1 option2
    
  2. Вы используете полный путь /usr/bin/curl . Если вы не знаете, что это правильно, и вам нужен полный путь, вы должны полагаться на свой $PATH и использовать просто curl .

  3. У вас нет места после curl .

  4. Вы пытаетесь запустить curl как root.

  5. Вы запускаете команду (например, случайный код из Интернета?) Вы, очевидно, не понимаете, как корень .

Чинить:

  • Напишите 100 раз:«Я не буду запускать команды, которые я не понимаю как root». :)
  • Drop 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> по-прежнему являются заполнителями, которые необходимо заменить на что-то допустимое.

0

Если вы хотите запустить это из командной строки, а не из systemd , вы должны запустить его так:

curl 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxx:$xxx>" -d 'hostname=<hostname>.xxxx.ddns.net'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .