Quando eu digito este comando
nohup CloudCompute.command &
produz o resultado
[1] 782
que é o que eu quero. (É o número PID, aliás)
Então, quando executo esse mesmo comando em um executável ( .command
) e tento anexar a saída a um arquivo, ele não funciona. Ele apenas imprime as CloudCompute.command
saídas, não o PID real que aparece quando você o executa. Tenho certeza de que está no mesmo diretório.
Por que isso está acontecendo? O que posso fazer para que o executável produza a mesma saída que você digitou manualmente?
Obrigado
Responder1
Por que isso está acontecendo?
Essa saída:
[1] 782
não é do executável. É o que bash
escreve no terminal, quando você executa algo em segundo plano. É o número do trabalho [1]
e o PID 782
do processo. Mais tarde, quando o processo terminar, você verá algo como:
[1]+ Done command
Isso também ocorre bash
porque o processo com a tarefa número 1 foi concluído.
Ao executar um comando em segundo plano, o PID é armazenado na variável $!
:
$ sleep 10 &
[1] 1234
$ echo $!
1234
O que posso fazer para que o executável produza a mesma saída que você digitou manualmente?
Portanto, seu executáveléproduzindo a mesma saída.