
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"