Como uso shellscripts para trilhos com 'screen'?

1

Eu iniciei recentemente o desenvolvimento do Ruby on Rails, e estou usando o Vagrant como uma VM para conter meu projeto Rails, porque o Windows é um sistema operacional terrível para qualquer tipo de desenvolvimento Ruby, devido à falta aparentemente aleatória de suporte para vários RubyGems.

A minha pergunta é a seguinte: Eu quero usar um shellscript para lançar os vários três comandos em sessões separadas da tela DETACHED, com os respectivos nomes:

"rails" ==>  'rails s'
"mail"  ==>  'mailcatcher --http-ip 0.0.0.0'
"guard" ==>  'bundle exec guard --force-polling'

Eu tentei usar o seguinte e não funcionou (startup.sh)

screen -S rails -d -m rails s
screen -S mail -d -m mailcatcher --http-ip 0.0.0.0
screen -S guard -d -m bundle exec guard --force-polling

Em vão, não parece fazer o que eu quero, e não sei se estou fazendo algo errado ou invocando a tela incorretamente. Alguém pode lançar alguma luz sobre esta situação? Quanto ao SO, é o Ubuntu 12.04 LTS (Precise) x86, como uma máquina virtual (embora a parte VM não seja importante, eu acho).

Obrigado antecipadamente por qualquer sugestão. Eu meio que só queria uma maneira de usar um shellscript para ativar meu projeto de trilhos (e serviços relacionados) ao mesmo tempo, em vez de ter que iniciar manualmente as sessões de tela toda vez que eu trouxesse minha caixa vadiadora.

Meu outro pensamento foi talvez descobrir como configurar esses comandos para serem executados na inicialização do sistema, usando cron ou algo assim?

    
por MisutoWolf 16.11.2013 / 17:01

1 resposta

2

Você pode tentar o comando screen como

 screen -d -m -S screen_name command 

A opção -S simplesmente especifica dentro de qual janela de tela o seguinte comando será executado. Como por -d -m , o man page recita:

 -d -m   Start screen in "detached" mode. This creates a new session but
       doesn't  attach  to  it.  This  is  useful  for  system startup
       scripts. 
    
por 16.11.2013 / 17:14