Script de inicialização do Linux O que 0 & - & alcançar

6

Estou procurando escrever meus próprios scripts init.d para controlar vários serviços em execução no meu Linux server. Me deparei com um exemplo on-line que continha:

nohup $EXEC_SCRIPT 0<&- &> $LOG_FILE & echo $! > $PID_FILE

Pelo que entendi:

  • nohup Captura o sinal hangup
  • $EXEC_SCRIPT é uma variável que contém o comando a ser executado
  • 0<&- &> não se depara com isso antes
  • $LOG_FILE semelhante a $EXEC_SCRIPT , mas contém o caminho do arquivo de log
  • & começa a registrar em $LOG_FILE em segundo plano?
  • $! é o PID do último comando de segundo plano
  • > escreve o resultado de $! na $PID_FILE

Eu posso trabalhar com esse conhecimento, mas o 0<&- &> está completamente me jogando fora. Eu não gosto de incluir coisas que eu não entendo pelo menos parcialmente primeiro.

    
por Chris Edwards 19.08.2015 / 13:54

2 respostas

7

Estes são redirecionamentos.

  • 0<&- fecha o descritor de arquivo 0 (entrada padrão).
  • &> redireciona stdout e stderr (neste caso para o arquivo de log)

Tem certeza de que não houve echo antes de $! ? $! seria interpretado como um comando e provavelmente resultaria em um

-bash: 18552: command not found
    
por 19.08.2015 / 14:05
1

& < - fecha o descritor de arquivo. Mas, mais fundamentalmente, procurar por aqueles pequenos "&" átomos no Google podem ser dolorosos! Veja este site no redirecionamento do bash para informações sobre o plano de fundo.

    
por 11.05.2016 / 22:49