Executando um comando no modo screen daemon

Executando um comando no modo screen daemon

Estou tentando executar um comando no modo de tela usando o comando

screen -dmS screen_name sed -i 's/a/b/'g some-file.txt

Nada acontece. Quando coloco o mesmo comando em um script e executo o comando:

screen -dmS screen_name bash -c /path/to/script

Funciona. Minha pergunta é: posso executar um comando no modo daemon sem primeiro precisar colocá-lo em um script? Basicamente, preciso desse recurso daemon porque ajuda a executar vários comandos em paralelo, executando vários comandos sed em arquivos grandes em paralelo, lançando cada comando em um daemon de tela separado, que termina automaticamente após a conclusão do programa. Obrigado

Responder1

Eu acho que o problema está no -S, se você tentar omitir a opção -S, ela deve funcionar, mesmo sem o bash -c, então tente isso

screen -dm sed -i 's/a/b/'g some-file.txt

Isso deve funcionar. A propósito, a tela não está atualizada, você deve considerar mudar para o tmux. Ele pode fornecer muito mais recursos.

Você pode instalar o tmux digitando:

sudo apt-get install tmux

Então seu código deve ficar assim:

tmux new-session -d -s foo 'sed -i 's/a/b/'g some-file.txt'

eu poderia testar com

tmux new-session -d -s hello 'top'

se você digitar

tmux attach -t hello

Isso o levará a uma sessão com top. Espero que isso ajude. verificar

man tmux

para todos os recursos e verifiqueaquipara uma folha de dicas abrangente

Responder2

Isso funciona para você?

screen -dmS screen_name bash -c "sed -i 's/a/b/'g some-file.txt"

informação relacionada