Repositori ini berisi contoh sederhana daemon untuk Linux OS. Repositori ini juga berisi contoh skrip awal.
Saat Anda ingin membuat daemon super sederhana, maka itu sangat mudah. Anda dapat menulis sesuatu seperti ini di C dan menyebutnya daemon.c :
/* Compile this with gcc -o daemon daemon.c */
#include <unistd.h>
int main ( void )
{
while ( 1 ) {
/* TODO: do something usefull here ;-) */
sleep ( 1 );
}
} dan tulis beberapa file layanan SystemD super sederhana yang disebut simple-daemon.service :
[Unit]
Description=Super simple daemon
[Service]
Type=simple
ExecStart=/usr/bin/daemon
[Install]
WantedBy=multi-user.target
Dan kemudian Anda dapat menjalankannya sebagai Daemon Unix, tetapi daemon seperti itu tidak memiliki beberapa fitur bagus seperti Reloadin Configure File, Logging, dll. Repositori dan sumber ini dapat membantu Anda memahami cara kerja Daemon Unix.
Untuk membangun contoh daemon yang harus Anda miliki alat berikut
Untuk membangun contoh daemon, Anda harus mengetik perintah berikut:
git clone https://github.com/jirihnidek/daemon.git
cd daemon
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ../
make
sudo make install
Anda dapat menguji daemon menjalankan dari baris perintah:
./bin/daemon
Tetapi menjalankan aplikasi dengan cara ini tidak menjalankan menjalankan daemon. Biarkan melihat parameter dan argumen baris perintah
Usage: ./bin/daemon [OPTIONS]
Options:
-h --help Print this help
-c --conf_file filename Read configuration from the file
-t --test_conf filename Test configuration file
-l --log_file filename Write logs to the file
-d --daemon Daemonize this application
-p --pid_file filename PID file used by daemonized app
Saat Anda akan menjalankan ./bin/daemon dengan parameter --daemon atau -d , maka itu akan menjadi daemon unix nyata. Tapi ini bukan jalan, bagaimana Unix Daemon dimulai sekarang. Beberapa skrip init atau file layanan digunakan untuk tujuan ini.
Saat Anda menggunakan distribusi Linux menggunakan SystemD, maka Anda dapat mencoba Mulai Daemon menggunakan
systemctl start simple-daemon
systemctl status simple-daemon
systemctl reload simple-daemon
systemctl stop simple-daemon
Catatan: Unit
make installsimple-daemon.serviceforking-daemon.service/usr/lib/systemd/system
Saat Anda menggunakan Redhat 4/5/6 atau Centos, maka Anda dapat mencoba menggunakan skrip init:
cp daemon.init /etc/rc.d/init.d/daemond
Maka harus dimungkinkan untuk mengontrol daemon menggunakan:
service daemon start
service daemon status
service daemon reload
service daemon stop