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 ++?


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 &

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.