Nano Hash - криптовалюты, майнинг, программирование

Запустите «связку исполняемого сервера-посредника» с супервизором.

Я работаю с slate, на котором работает веб-сервер с bundle exec middleman server. Я хотел бы сохранить это с супервизором, но я не могу понять, как это сделать. Обычный запуск команды из каталога работает нормально. Конфигурация, которую я пробовал, приведена ниже, как и ошибка, которую я получаю при ее запуске.

Как я могу правильно запустить это как демон?

Файл .conf супервизора:

[program:slate]
directory=/home/vaindil/slate
command=/home/vaindil/.rvm/gems/ruby-2.3.1/bin/bundle exec middleman server
autostart=true
autorestart=true
stderr_logfile=/var/log/slate.err.log
stdout_logfile=/var/log/slate.out.log

Ошибка:

/usr/bin/env: ruby_executable_hooks: No such file or directory

ОБНОВЛЕНИЕ: по просьбе Мэтта в комментариях я попытался запустить Foreman и экспортировать в supervisord. Я получаю другую ошибку от этого.

Выходная конфигурация супервизора:

[program:app-web-1]
command=bundle exec middleman server
autostart=true
autorestart=true
stopsignal=QUIT
stdout_logfile=/var/log/web-1.log
stderr_logfile=/var/log/web-1.error.log
directory=/home/vaindil/slate
environment=PORT="4567"

[group:app]
programs=app-web-1

Ошибки:

Warning: the running version of Bundler is older than /
the version that created the lockfile. We suggest you /
upgrade to the latest version of Bundler by running `gem install bundler`.
bundler: command not found: middleman
Install missing gem executables with `bundle install`
27.09.2016

  • Я мог бы предложить использовать Foreman для экспорта в супервизор и посмотреть, получится ли что-то другое. ddollar.github.io/foreman/#EXPORT-FORMATS Кроме того, для чего это стоит, когда я ищу вашу конкретную ошибку, это как-то связано с RVM и переменными среды. Может быть, это другое место для начала. 28.09.2016
  • @Matt Я пробовал Foreman, использование foreman start работает отлично, но экспортированный вывод для supervisord не работает. Я добавлю это к вопросу на мгновение. 29.09.2016
  • Итак, проблема в том, что скрипт bundle имеет следующую строку #!/usr/bin/env ruby_executable_hooks в начале. Команда env не может найти сценарий ruby_executable_hooks в том же каталоге. Мне могут потребоваться некоторые настройки environment в конфигурации supervisor. 16.08.2017
  • Я добавил правильные пути к environment в конфигурации supervisor, и это должно было сработать; однако это не сработало для меня. Ошибка все еще происходит. 16.08.2017

Ответы:


1

Вот что я сделал, чтобы заставить его работать:

rvm wrapper ruby-version-here executable-hooks

ex: rvm wrapper ruby-2.3.1 executable-hooks

Как только я добавил это в оболочку, а затем добавил путь к оболочке в свою конфигурацию supervisor, все заработало.

Теперь ваша команда может быть такой:

command=/home/vaindil/.rvm/wrappers/ruby-2.3.1/bundle exec middleman server

15.08.2017
  • Спасибо, я использую rbenv и передал путь к сборщику скрипту запуска, и это сработало. /root/.rbenv/прокладки/комплектовщик 20.08.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..