GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la differenza tra l'esecuzione di un programma come demone e il fork in background con "&"?

Quali sono le differenze pratiche dal punto di vista dell'amministratore di sistema quando si distribuiscono servizi su un sistema basato su unix?

Risposta accettata:

Il modo tradizionale di demonizzare è:

fork()
setsid()
close(0) /* and /dev/null as fd 0, 1 and 2 */
close(1)
close(2)
fork()

Ciò garantisce che il processo non sia più nello stesso gruppo di processi del terminale e quindi non venga terminato insieme ad esso. Il reindirizzamento IO serve a far sì che l'output non venga visualizzato sul terminale.


Linux
  1. Qual è la differenza tra $ (roba) e `roba`?

  2. La differenza tra [[ $a ==Z* ]] e [ $a ==Z* ]?

  3. Qual è la differenza tra /sbin/nologin e /bin/false?

  4. Qual è la differenza tra punto e virgola e doppia e commerciale &&?

  5. La differenza tra "env" e "printenv"?

Qual è la differenza tra InnoDB e MyISAM?

Qual è la differenza tra Linux e Unix?

La differenza tra Nss e Pam?

Qual è la differenza tra Ddrescue, Gddrescue e Dd_rescue?

La differenza tra fork(), vfork(), exec() e clone()

Qual è la differenza tra unlink e rm?