Posso usar um script bin bash para iniciar dois processos separados que precisam permanecer em execução em duas janelas separadas? UBUNTU 14.04.3

2

Estou me referindo a um programa de proxy que precisa estar em constante execução e, em seguida, a um programa de mineração. Ambos precisam de sua própria janela e estou tentando criar um script para que eu possa executá-lo em minha máquina HOST . Eu tenho uma máquina HOST e várias sondas, se eu tiver um equipamento que desce, quero SSH para minha máquina HOST e executar um script que irá SSH para a dita plataforma, e executar essas ações.

Execução do servidor Ubuntu 14.04.3

#!bin/bash
cd ~/adl3
./atitweak -f 100 -p 20
cd ~/eth-proxy
sudo python ./eth-proxy.py
aticonfig —adapter=ALL —odsc=1060,300
aticonfig —adapter=ALL -odcc
cd ~/cpp-ethereum/build/ethminer
./ethminer —farm-recheck 150 —cl-local-work 256 -G -F http://127.0.0.1:8080/foxtrot
exit 0
    
por Norman Dunnagan 31.03.2017 / 09:09

2 respostas

1

Sim, é possível com o comando setsid . Eu iria reescrever seu script assim:

#!bin/bash
cd ~/adl3
./atitweak -f 100 -p 20
cd ~/eth-proxy
setsid gnome-terminal -e 'sudo python ./eth-proxy.py'
aticonfig —adapter=ALL —odsc=1060,300
aticonfig —adapter=ALL -odcc
cd ~/cpp-ethereum/build/ethminer
setsid gnome-terminal -e './ethminer —farm-recheck 150 —cl-local-work 256 -G -F http://127.0.0.1:8080/foxtrot'
exit 0

Como alternativa, pode-se usar nohup command & assim. Observe que nohup gravará um arquivo nohup.out para armazenar a saída do seu comando, embora o redirecionamento para /dev/null impeça isso.

Se você precisar ocultar a saída do script, adicione &> /dev/null ao comando específico que você deseja ou ao script inteiro na linha de comando, como:

./my_script.sh &> /dev/null

Se vários comandos precisarem de sudo , acrescente-o ao início da chamada para o script na linha de comando, embora você tenha que usar o caminho completo em vez da expansão ~ . Na verdade, você salvaria várias linhas de script (e garantiria a execução adequada também) se você colocar o caminho completo em vez de ~ em seu script.

    
por Sergiy Kolodyazhnyy 31.03.2017 / 09:54
0

Em um Ubuntu Unity Desktop padrão, você terá gnome-terminal disponível. No Kubuntu, pode ser konsole .

Para iniciar um novo terminal / janela com um comando em execução, você pode emitir

gnome-terminal -e "sudo python ./eth-proxy.py"

ou

konsole -e "sudo python ./eth-proxy.py"

A linha de comando para ethminer é semelhante.

Como alternativa, você também pode executar os comandos em segundo plano e redirecionar a saída como

python ./eth-proxy.py >/tmp/eth-proxy.log 2>&1 &

E, em seguida, observe a saída ocasionalmente com tail

tail -f /tmp/eth-proxy.log
    
por Olaf Dietsche 31.03.2017 / 17:42