update readme

This commit is contained in:
Aliberk Sandıkçı 2023-07-26 10:26:28 +03:00
parent daf6ab40fd
commit 6b21db0dd9
Signed by: asandikci
GPG key ID: 25C67A03B5666BC1

View file

@ -2,6 +2,7 @@
A Linux daemon runs continuously written in golang. Refer to [ahenk-docs/dev](https://git.aliberksandikci.com.tr/Liderahenk/ahenk-docs/src/branch/main/dev/resources.md#daemon-linux) for resources
This repo will be include two separate daemons. One of them is written with C language for understanding native daemon processes [c-daemon](c-daemon/) . Other one is written in go for implement same deamon concepts to go language and using with native performance [go-daemon](go-daemon/)
<br>
---
@ -17,4 +18,18 @@ It is not mandatory but daemon processes are usually named to end with the lette
- Initial operations, such as reading configuration files or obtaining necessary system resources, must be performed before the process becomes a daemon
-
- A background running process is created with init as its parent process. For this purpose, a sub-process is forked from the init process first, and then the upper process is terminated with exit
- A new session should open by calling the setsid function, and the process should be disconnected from the terminal
- All open file descriptors inherited from the parent process are closed
- Standard input, output, and error messages are redirected to `/dev/null`
- The working directory of the process must change
The operating system groups processes into session and process groups. Each session consists of process groups.
Processes receive their inputs and send their outputs to **controlling terminal**. A controlling terminal is associated with only **one** session at a time
A session and process groups in it have identification (**ID**) numbers; these identification numbers are the process identification numbers (**PID**) of the session and process group leaders. A child process shares the same group as its parent process