Nohup & Sass: O processo continua em execução, mas, depois de um tempo, os arquivos * .scss não são compilados

5

Estou usando o Sass em um servidor CentOS 5.8 e quero que ele continue em execução após o logoff do SSH, para que outros usuários possam editar arquivos * .scss por dias ou mesmo semanas sem precisar iniciar o programa toda vez que fizerem login (na verdade, eles nem têm acesso SSH).

Eu usei o seguinte comando desta pergunta / resposta :

$ nohup sass --watch path/to/scss/files:path/to/css/output/files &

Depois, saio da sessão SSH e o processo continua em execução. Tudo funciona bem (fazer o login novamente e usar o toque para criar um arquivo de teste (test.scss) aciona corretamente a criação do arquivo test.css correspondente) durante os primeiros minutos, mas depois de um tempo os arquivos * .scss param de obter 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 '':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
>>> Sass is watching for changes. Press Ctrl-C to stop.
>>> New template detected: 
/home/*/sites/all/themes/test.scss
  overwrite private_html/sites/all/themes//test.css
>>> Deleted template detected: 
/home/*/sites/all/themes/test.scss

O erro relacionado ao YAML parece não ter relação com o problema, já que o Sass está funcionando corretamente por um curto período. Ele simplesmente pára de funcionar em algum momento, mesmo que o processo continue em execução ...

    
por maurits 26.10.2012 / 11:19

1 resposta

1

Ugh soa como um problema chato. Duvidoso um problema com nohup desde que é amplamente utilizado, maduro e simples. Vamos eliminá-lo assim mesmo. 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 o tee bifurca um log no disco

agora, desanexe sua tela: ctrl+a d

faça logout, faça login novamente e veja se isso faz diferença. Não há necessidade de anexar novamente a sua tela desde que você tenha o sass.log indo, mas você faria isso com screen -r .

    
por 20.12.2012 / 05:53