enviando tarefas para uma estação de trabalho Linux

0

Eu tenho acesso a algumas estações de trabalho Linux nas quais executo meus arquivos executáveis ​​em C ++ no meu laptop, mas o problema é que cada vez que executo um trabalho no terminal do meu laptop, tenho que manter uma janela de terminal para cada trabalho ... uma maneira de enviar o trabalho para a máquina Linux e ver o resultado apenas uma vez após a execução terminar ... Eu sei que isso pode ser feito no executável FORTRAN adicionando & no final apenas e tentei com: mpirun -np 20 ./a 200 1000000 & e mpirun -np 20 ./a 200 1000000 & mas nenhum deles está funcionando ...

Existe alguma maneira de fazer o mesmo no Linux com C ++?

MAIS OU MENOS
fonte
1
Você já viu nohup?

Respostas:

2

Tente adicionar nohupno início do comando. Isso protegerá o processo do SIGHUPsinal (que pode indicar que o terminal proprietário foi fechado), cuja ação padrão é finalizar o processo. Por exemplo:

nohup mpirun -np 20 ./a 200 1000000 &
cdhowie
fonte
Absolutamente correto :). Você conhece a parte "&" (para executar o programa em segundo plano). "nohup" evita que o seu programa seja morto quando você efetua logoff da sua sessão do terminal. Finalmente, você também pode querer redirecionar a saída para um arquivo que você pode ler depois:nohup mpirun -np 20 ./a 200 1000000 2>&1 mylog.txt &
paulsm4
2

Veja o screencomando.

man 1 screen
arroz
fonte
Infelizmente, a "tela" provavelmente não ajudará o OP se ele quiser matar sua sessão do terminal. Eu acredito que "nohup" é o comando que ele está procurando. IMHO ...
paulsm4
@ paulsm4 Eu acredito que ele quer executar o comando dentro da tela. Em seguida, o terminal pode sair após se desconectar da instância da tela e o programa continuará sendo executado dentro da tela, onde poderá ser reconectado posteriormente.
precisa saber é o seguinte
tela será executado individual, e você pode recolocar a ele - e OP disse que ele quer ver os resultados quando ele é feito
jthill