Criei vários screen
para executar o mesmo trecho de código com parâmetros diferentes. A maneira como estou fazendo agora é anexar manualmente uma tela, passar o comando e os argumentos e depois Ctrl a+d
desanexar essa tela. Em seguida, anexando novamente uma tela diferente e novamente passando os argumentos e desconectando-se dessa tela. É possível escrever um script bash para fazer todo esse processo automaticamente?
Responder1
Criar múltiplas screen
sessões provavelmente não é a melhor opção. Screen suporta a noção de colocar várias janelas em uma sessão, o que torna coleções como essa mais fáceis de manusear. Há ^A 1
, ^A 2
etc. ^A '
e ^A "
para alternar entre as janelas e ^A w
listá-las.
Indo para uma sessão de tela, você pode iniciar uma sessão e depois os comandos internos com algo como:
#!/bin/sh
screen -d -m -S test
screen -S test -X screen -t title somecommand someargs...
screen -S test -X screen -t othertitle somecommand otherargs
screen -d -m
inicia uma nova sessão desanexada, -S
dá um nome à sessão ou refere-se a ela pelo nome. -X
envia o resto da linha de comando como um comando para uma sessão em execução, e o screen
comando (dentro screen
) abre uma nova janela e executa um comando lá. -t
pode ser usado para screen
dar ojanelaum título.
Ou você pode colocar os comandos screen
em um arquivo e usá-los :source
para executar o arquivo (semelhante a .screenrc
). Veja o manual para alguns exemplos e uma referência sobre os screen
suportes de comandos. (Há um caminhão carregado.)