Não é possível executar um processo em segundo plano

1

Eu usei o seguinte comando para executar o script cp.sh em segundo plano.

nohup sh cp.sh < /dev/null & > /dev/null &
output: Invalid null command.

Qual seria a solução para este "comando nulo inválido"?

    
por Wasila 03.02.2016 / 08:34

2 respostas

4

Você colocou um espaço entre & > , que precisa ser &> . Isso redirecionaria tanto STDOUT quanto STDERR para o arquivo seguido a seguir.

Então você precisa:

nohup sh cp.sh < /dev/null &> /dev/null &

Se o seu shell não suporta &> , use a maneira POSIX para redirecionar STDOUT e STDERR:

nohup sh cp.sh </dev/null >/dev/null 2>&1 &
    
por 03.02.2016 / 08:38
1

A mensagem é de um shell que reclama da sintaxe:

& > /dev/null &

é de fato uma linha de comando que contém a command between two & , mas esse comando não tem um nome de comando, mas apenas um redirecionamento para stdout .

BTW: Para quem ainda não sabe: há 12 anos, o Solaris permite nohup de um processo em execução, chamando:

nohup -p <pid>

ou

nohup -g <pgid>

Isso cria um arquivo nohup.out e substitui o descritor de arquivo stdout no kernel por um descritor de arquivo que se refere ao arquivo nohup.out .

    
por 03.02.2016 / 12:18