Nohup & Sass: O processo continua em execução, mas, após algum tempo, os arquivos * .scss não são compilados

5

Estou usando o Sass em um servidor CentOS 5.8 e quero que continue em execução após o logout do SSH, para que outros usuários possam editar arquivos * .scss por dias ou até semanas, sem a necessidade de iniciar o programa sempre que efetuarem login (na verdade , eles nem têm acesso SSH).

Eu usei o seguinte comando desta pergunta / resposta :

$ nohup sass - observe o caminho / para / scss / files: caminho / para / css / output / files &

Então, saio da sessão SSH e o processo continua em execução. Tudo funciona bem (fazer login novamente e usar o touch para criar um arquivo de teste (test.scss) aciona corretamente a criação do arquivo test.css correspondente) pelos primeiros minutos, mas depois de um tempo os arquivos * .scss param de ser compilado ... No entanto,

$ ps aux | grep 'sass'

Mostra que o processo ainda está em execução.

Alguém sabe o que estou fazendo de errado?

EDIT: esta é a saída que estou recebendo do nohup.out:

/usr/local/rvm/rubies/ruby-1.9.3-p286/lib/ruby/1.9.1/yaml.rb:56:in ``:
Parece que sua instalação do ruby ​​está faltando psych (para saída YAML).
Para eliminar esse aviso, instale o libyaml e reinstale o ruby.
>>> Sass está observando mudanças. Pressione Ctrl-C para parar.
>>> Novo modelo detectado: 
/home/*/sites/all/themes/test.scss
  substituir private_html / sites / all / themes // test.css
>>> Modelo excluído detectado: 
/home/*/sites/all/themes/test.scss

O erro relacionado ao YAML parece não estar relacionado ao problema, pois o Sass está funcionando corretamente por um curto período de tempo. Ele silenciosamente para de funcionar em algum momento, mesmo que o processo continue em execução ...

Maurits
fonte
Você obtém alguma saída no nohup.out?
dset0x
Obrigado pela pergunta, adicionou a saída de nohup.out
maurits 27/10/12
Eu tenho o mesmo problema. Estou executando aproximadamente a mesma configuração há cerca de uma semana (Sass via nohup no Ubuntu 12.04). Como solução alternativa, planejo iniciar o Sass via script bash em um trabalho cron semi-frequente, eliminando os trabalhos sass existentes antes de iniciar os novos. Isso parece desajeitado e me deixa desconfortável, especialmente a possibilidade de matar um trabalho atrevido enquanto ele está gravando no disco. Mas, como sou o único usuário do meu sistema, com confirmações relativamente pouco frequentes, posso arriscar.
Andy Giesler

Respostas:

1

Ugh parece um problema irritante. Um problema duvidoso com o nohup, pois é amplamente usado, maduro e simples. Vamos eliminá-lo de qualquer maneira. Também estamos eliminando o background do processo como um problema.

Abra uma tela ... literalmente screen

execute seu comando sem nohup, mas vamos registrá-lo em algum lugar

sass --watch path/to/scss/files:path/to/css/output/files 2>&1 | tee sass.log

o 2> & 1 garante que pegamos STDERR e STDOUT, enquanto tee bifurca um log para o disco

agora desanexe sua tela: ctrl+a d

logout, efetue login novamente e veja se isso faz alguma diferença. Não é necessário conectar novamente à sua tela, pois você tem o sass.log ativo, mas você faria isso screen -r.

MattPark
fonte