Processus et démons sous Unix/Linux

Processus et démons sous Unix/Linux

7d1caf9df777b3b2cf474ff743494335?s=128

Jérémy Lecour

April 04, 2014
Tweet

Transcript

  1. Des processus et démons sous Unix/Linux Jérémy Lecour — PastisRb

    et PLUG — avril 2014
  2. Jesse Storimer jstorimer.com

  3. Kernel et appels systèmes

  4. Kernel Matériel Logiciel

  5. processus Les processus

  6. ont un id Les processus processus

  7. ont un parent Les processus processus

  8. ont des ressources ouvertes Les processus processus

  9. ont des limites de ressources Les processus processus

  10. ont un environnement Les processus processus

  11. ont des arguments Les processus processus

  12. ont un nom Les processus processus

  13. ont des codes de retour Les processus processus

  14. peuvent fourcher Les processus processus

  15. peuvent virer Zombie Les processus processus

  16. recevoir des signaux Les processus processus

  17. processus Signal Value Action Comment ------------------------------------------------------------------------- SIGHUP 1 Term Hangup

    detected on controlling terminal or death of controlling process SIGINT 2 Term Interrupt from keyboard SIGQUIT 3 Core Quit from keyboard SIGILL 4 Core Illegal Instruction SIGABRT 6 Core Abort signal from abort(3) SIGFPE 8 Core Floating point exception SIGKILL 9 Term Kill signal SIGSEGV 11 Core Invalid memory reference SIGPIPE 13 Term Broken pipe: write to pipe with no readers SIGALRM 14 Term Timer signal from alarm(2) SIGTERM 15 Term Termination signal SIGUSR1 30,10,16 Term User-defined signal 1 SIGUSR2 31,12,17 Term User-defined signal 2 SIGCHLD 20,17,18 Ign Child stopped or terminated SIGCONT 19,18,25 Cont Continue if stopped SIGSTOP 17,19,23 Stop Stop process SIGTSTP 18,20,24 Stop Stop typed at tty SIGTTIN 21,21,26 Stop tty input for background process SIGTTOU 22,22,27 Stop tty output for background process
  18. peuvent communiquer Les processus processus

  19. Qu’est-ce qu’un démon

  20. 1. exit if fork 2. Process.setsid 3. exit if fork

    4. Dir.chdir "/" 5. STDIN.reopen "/dev/null" 6. STDOUT.reopen "/dev/null", "a" 7. STDERR.reopen "/dev/null", "a"
  21. 1. exit if fork 2. Process.setsid 3. exit if fork

    4. Dir.chdir "/" 5. STDIN.reopen "/dev/null" 6. STDOUT.reopen "/dev/null", "a" 7. STDERR.reopen "/dev/null", "a"
  22. 1. exit if fork 2. Process.setsid 3. exit if fork

    4. Dir.chdir "/" 5. STDIN.reopen "/dev/null" 6. STDOUT.reopen "/dev/null", "a" 7. STDERR.reopen "/dev/null", "a"
  23. 1. exit if fork 2. Process.setsid 3. exit if fork

    4. Dir.chdir "/" 5. STDIN.reopen "/dev/null" 6. STDOUT.reopen "/dev/null", "a" 7. STDERR.reopen "/dev/null", "a"
  24. 1. exit if fork 2. Process.setsid 3. exit if fork

    4. Dir.chdir "/" 5. STDIN.reopen "/dev/null" 6. STDOUT.reopen "/dev/null", "a" 7. STDERR.reopen "/dev/null", "a"
  25. 1. exit if fork 2. Process.setsid 3. exit if fork

    4. Dir.chdir "/" 5. STDIN.reopen "/dev/null" 6. STDOUT.reopen "/dev/null", "a" 7. STDERR.reopen "/dev/null", "a"
  26. None
  27. Merci

  28. jeremy.lecour@gmail.com @jlecour jeremy.wordpress.com github.com/jlecour