2016-12-27 21 views
5

Mam zadanie rake, które musi być ciągle aktywne. Ilekroć prowadził ją przez komendęRakes 'rake task' wykonać w 'RAILS_ENV = production' z nohup

RAILS_ENV=production rake jobs:abc 

to działa dobrze, ale kiedy zamknąć zacisk rake zadanie dostać stopped.So znalazłem inne rozwiązanie na nim za pomocą nohup uruchomić go w tle.

I wykonać polecenie:

nohup RAILS_ENV=production rake jobs:work & 

ale daje błąd:

nohup: failed to run command ‘RAILS_ENV=production’: No such file or directory

Proszę zasugerować, aby sposób wykonać rake zadania w środowisku produkcyjnym.

+0

to może być problem ze środowiskiem proszę gospodarczy porównuje w folderze środowisku config jest dowolny production.rb obecny czy nie? –

+0

production.rb obecny w katalogu/config/environments /. "Brak takiego pliku lub katalogu" z powodu polecenia "nohup" –

+0

czy wypróbowałeś te zadania robienia nohup: praca RAILS_ENV = produkcja –

Odpowiedz

8

Ustaw zmienną środowiskową przed poleceniem nohup.

RAILS_ENV=production nohup rake jobs:work 
3

Spróbuj ten

nohup rake jobs:work RAILS_ENV=production 

mam skomentował rozwiązanie powyżej, jak również

2

Jeśli potrzebujesz nohup funkcjonalność, należy również rozważyć screen.

RAILS_ENV=production screen -L rake jobs:work 

Uruchamia nowy terminal, który nie jest związany z bieżącą sesją.

Aby powrócić do normalnego terminalu, wpisz Ctrl+a, a następnie d. Możesz teraz wylogować się bezpiecznie bez kończenia zadania rake.

Jako bonus automatycznie otrzymujesz plik dziennika w screenlog.0.

można wrócić do procesu natarcia wpisując:

screen -r