Путаница о системных файлах, файлах среды и аргументах командной строки для исполняемого файла службы

Я пытаюсь преобразовать скрипт upstart в systemd , но я не могу понять, как передать аргументы командной строки исполняемому файлу. Вот оригинальный сценарий upstart :

 # job description description "job description" start on (started wrouterd and wrouterd-started) stop on (stopping wrouterd) instance $SLUG[$PHONE] chdir /var/application/bin console log manual respawn respawn limit 5 60 exec /usr/bin/php my_script.php --phone=${PHONE} --slug=${SLUG} 

До сих пор это то, что я получил:

  • RHEL 7 как запустить давний скрипт перед выключением / перезагрузкой systemd
  • UID / Gid привилегированный контейнер LXC: systemd lxc-start не удался на ubuntu 16.04
  • Запуск службы systemd только * после * прослушивания целевого сокета.
  • Как настроить запуск службы после запуска autofs с помощью systemd
  • какие инструменты для расследования не удается приостановить на крышке ноутбука закрыть?
  • Какое место для системных служб, созданных системным администратором на Debian?
  •  [Unit] Description=service description After=wrouterd.service [Service] Type=simple WorkingDirectory=/var/application/bin StandardOutput=tty, StandardError=tty Restart=on-failure RestartSec=30s ExecStart=/usr/bin/php my_script.php --phone=${PHONE} --slug=${SLUG} того, как [Unit] Description=service description After=wrouterd.service [Service] Type=simple WorkingDirectory=/var/application/bin StandardOutput=tty, StandardError=tty Restart=on-failure RestartSec=30s ExecStart=/usr/bin/php my_script.php --phone=${PHONE} --slug=${SLUG} 

    Я прочитал кое-что о файлах среды, но я не уверен, применимы ли они к моему делу, потому что они говорят здесь, что «служба не должна менять параметры очень часто» и «Параметры службы не меняются на регулярной основе, и не имеют их конфигурационных файлов », и в настоящее время у меня в настоящее время около 130 экземпляров этого задания, и я должен иметь возможность запускать и останавливаться в любое время. Мне нужно создать файл окружения для каждого отдельного экземпляра? Или мне нужно изменить переменные в одном файле среды, а затем запустить / остановить скрипт?

  • Запуск службы systemd внутри службы systemd вызывает тупик
  • Как запустить службу автоматически, когда запускается Ubuntu?
  • Как не монтировать раздел в файле fstab при загрузке, а скорее щелкнуть по ярлыку в наутилусе?
  • Обрезка времени загрузки системы
  • Не могу заставить Systemd работать на GENTOO: Где я иду не так?
  • Сохранять переменные среды с помощью systemd?
  • One Solution collect form web for “Путаница о системных файлах, файлах среды и аргументах командной строки для исполняемого файла службы”

    Возможно, вы ищете экземпляры . См. Этот блог, в котором обсуждается, как один экземпляр getty создается экземпляром столько раз, сколько требуется, создавая символическую ссылку на него, с именем файла, содержащим произвольный параметр, который передается на устройство, где его можно восстановить как %I или %i .

    Например,

     systemctl start serial-getty@ttyUSB0.service 

    сначала найдет файл с таким именем файла, а затем удалит часть ttyUSB0 и ищет ttyUSB0 serial-getty@.service file . Внутри блока /usr/lib/systemd/system/serial-getty@.service вы увидите строки типа

     ExecStart=-/sbin/agetty -s %I 115200,38400,9600 

    который заставит getty работать с arg ttyUSB0 вместо %I

    Я очень рекомендую прочитать всю серию блогов на systemd.

    Linux и Unix - лучшая ОС в мире.