• Non ci sono risultati.

Syscall – Daemon programming

N/A
N/A
Protected

Academic year: 2021

Condividi "Syscall – Daemon programming"

Copied!
7
0
0

Testo completo

(1)

Syscall – Daemon programming

(2)

Relazioni tra processi

abbiamo visto che i processi sono collegati tra loro da relazioni di discendenza padre-figlio, esistono altri tipi di relazioni tra processi

ogni processo appartiente ad un process group

un process group è un insieme di processi

ad ogni process group è assegnato un PGID numerico

ogni process group può avere un group leader

esempi di utilità di process group sono la consegna dei segnali (già vista)

ogni process group appartiene ad una sessione

ogni sessione può essere associate ad un terminale

il processo che crea una sessione è detto session leader

(3)

Relazioni tra processi – esempio

eseguiamo con una shell

find /etc -type f | sort > ~/conffiles.txt &

ls ~/ | sort | mail foo@test.com

la sessione risultante sarà la seguente:

sessione process group

shell

process group find

process group ls

sort sort

mail

(4)

Relazioni tra processi – syscall

system call relative alle relazioni tra processi

getpgrp ritorna il process group di appartenenza del processo corrente

setpgid entra a far parte di un gruppo di processi o ne crea uno nuovo

setsid crea una nuova sessione (senza terminale)

(5)

Creazione di un “demone”

abbiamo visto esempi di processi “demoni” (e.g. cron)

per programmarli occorre seguire una sequenza di passi

1. fork (il padre termina, il figlio continua)

la shell attende solo il padre

assicura che il figlio non sia process group leader

2. creare una nuova sessione

il processo diventa session e process group leader, nessun terminale associato

3. impostare la directory corrente a “/”

4. impostare umask a 0

5. chiudere i file descriptor non necessari

(6)

Creazione di un “demone”

#include <stdio.h>

#include <sys/types.h>

#include <unistd.h>

int main(void) {

pid_t pid;

if ( (pid = fork()) < 0) exit(-1);

else if (pid != 0)

exit(0); /* parent exits */

/* child */

setsid(); /* new session */

chdir("/"); /* go to / */

umask(0); /* reset umask */

/* real code here */

exit(0);

}

(7)

Riferimenti

relazioni tra processi

APUE, cap. 9

programmazione di demoni

APUE, cap. 13

Riferimenti

Documenti correlati

La visura camerale storica, oltre alle informazioni già presenti nella visura camerale ordinaria, riporta le modifiche relative all’impresa dalla costituzione

Processo Attività di Ricerca, Sperimentazione e Sviluppo (RS&amp;S) in materia di istruzione degli adulti Fase: Programmazione delle Misure di sistema.. Input Attività Soggetti

In questo tipo di simbiosi entrambi i partner traggono beneficio dalla loro associazione.. Il tipo di beneficio può essere quanto mai diverso, spesso per uno o entrambi i partner è

Assessorato alle Politiche per la Salute della Provincia Autonoma di Trento Azienda Provinciale per i Servizi Sanitari Ordine dei Medici, dei Chirurghi e degli Odontoiatri..

Spiegare bene la

03 • Indica ( ✓ ) che significato hanno le preposizioni sottolineate nelle seguenti frasi. Appena puoi, passa

Questa via è più flessibile, (rispetto all'ereditare dalla classe Thread) in quanto consente di definire classi di thread che non siano per forza sottoclassi di Thread ma che

r più processi possono trovarsi negli stati ready e waiting. necessità di strutture dati per mantenere in memoria le informazioni su processi