Your Browser is not longer supported
Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...
{{viewport.spaceProperty.prod}}
setsid - Sitzung erzeugen und Prozessgruppennummer setzen
&pagelevel(4)&pagelevel
Definition | #include <unistd.h> Optional #include <sys/types.h> (Ende) pid_t setsid(void); |
Beschreibung | Wenn der aufrufende Prozess kein Prozessgruppenleiter ist, erzeugt setsid() eine neue Sitzung. Nach der Rückkehr dieser Funktion ist der aufrufende Prozess der Sitzungsleiter dieser neuen Sitzung und der Prozessgruppenleiter einer neuen Prozessgruppe. Außerdem besitzt der Prozess kein steuerndes Terminal. Die Prozessgruppennummer des aufrufenden Prozesses wird gleich der Prozessnummer des aufrufenden Prozesses gesetzt. Der aufrufende Prozess ist der einzige Prozess in der neuen Prozessgruppe und der einzige Prozess in der neuen Sitzung. |
Returnwert | Prozessgruppennummer des aufrufenden Prozesses |
|
| bei Erfolg. |
| (pid_t ) -1 | bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen. |
Fehler | setsid() schlägt fehl, wenn gilt:
|
| EPERM
| Der aufrufende Prozess ist bereits Prozessgruppenleiter oder die Prozessgruppennummer eines anderen Prozesses als des aufrufenden stimmt mit der Prozessnummer des aufrufenden Prozesses überein. |
Hinweise | Wenn der aufrufende Prozess die letzte Komponente einer Pipe ist, die von einer Job-Kontroll-Shell gestartet worden ist, kann die Shell den aufrufenden Prozess zum Prozessgruppenleiter machen. Die anderen Prozesse der Pipeline werden Mitglieder der Prozessgruppe. In diesem Fall schlägt der Aufruf von setsid() fehl. Aus diesem Grund sollte ein Prozess, der setsid() aufruft und davon ausgeht, Teil einer Pipe zu sein, vorher immer ein fork() ausführen; der Vaterprozess sollte beendet werden, und der Sohnprozess sollte setsid() aufrufen und dadurch versichern, dass der Prozess zuverlässig funktioniert, ob er nun von Job-Kontroll-Shells aufgerufen wird oder nicht (siehe Handbuch „POSIX-Grundlagen“ [1] und Handbuch „POSIX-Kommandos“ [2]). |
Siehe auch | setpgid() , sys/types.h , unistd.h .
|