Laravel Forge Long Running Artisan Command с демоном

Я создал команду в Laravel (L5), которая подключается к API потоковой передачи Twitter и доступна с помощью php artisan collect-tweets. Когда я запускаю его локально, поскольку это постоянное соединение, оно по сути работает бесконечно в окне терминала. Теперь я развернул приложение в Laravel Forge и хочу, чтобы оно запускало команду, а не завершало процесс. Я прочитал ответ, указанный здесь, но я хочу знать если есть альтернативный способ запустить длительную (бесконечную) команду artisan в Laravel Forge - возможно, используя Daemon Worker?

Что я пробовал:

  1. создание демона через Forge Console и выполнение mysite.co.uk/php artisan my command (не работает)
  2. создание run.sh, содержащего собранные твиты php artisan, и попытка его запуска путем создания демона с командой mysite.co.uk/run.sh. Это дает мне ошибку, говоря, что он не может найти командного мастера
  3. давая демону полный путь к run.sh-скрипту /home/forge/mysite.co.uk/run.sh, который выдает ошибку Exited too quickly (process log may have details) (классическая проблема ...)

Есть идеи, как я могу достичь своей цели?


person ExoticChimp    schedule 13.08.2015    source источник


Ответы (2)


Я очень мало знаю о Forge, поэтому предлагаемое мной решение не является ни частью этого уровня, ни частью уровня Laravel, но если вы можете получить доступ к командной строке, это может сработать.

Другие сообщения, которые я видел об этом упоминании «не закрывать терминал», что является хакерским способом сделать это, но в Linux есть команда под названием nohup. Вы можете найти несколько примеров, если вы используете Bing для этого. Или есть этот вопрос, на который вы могли бы сослаться.

person Randy L    schedule 12.10.2015

для первой точки это должно быть

php /home/forge/my-site.com/artisan my-command

для использования его в качестве демона вы можете, например,

sudo /home/forge/my-site.com/node socket.js
person ctf0    schedule 03.10.2016