Ce référentiel contient un exemple simple de démon pour Linux OS. Ce référentiel contient également des exemples de scripts de démarrage.
Lorsque vous voulez créer un démon super simple, alors c'est très facile. Vous pouvez écrire quelque chose comme ça en C et l'appeler 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 );
}
} et écrivez un fichier de service Systemd super simple appelé simple-daemon.service :
[Unit]
Description=Super simple daemon
[Service]
Type=simple
ExecStart=/usr/bin/daemon
[Install]
WantedBy=multi-user.target
Et puis vous pouvez l'exécuter en tant que démon Unix, mais un tel démon n'a pas de belles fonctionnalités comme Reloadin Configure Files, Ling, etc. Ce référentiel et les sources peuvent vous aider à comprendre comment fonctionne Unix Daemons.
Pour construire un exemple du démon, vous devez avoir des outils suivants
Pour créer un exemple de démon, vous devez taper les commandes suivantes:
git clone https://github.com/jirihnidek/daemon.git
cd daemon
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr ../
make
sudo make install
Vous pouvez tester le démon en cours d'exécution à partir de la ligne de commande:
./bin/daemon
Mais l'exécution de l'application de cette manière ne fonctionne pas en cours d'exécution de démon. Laissez un aperçu des paramètres et des arguments de la ligne de commande
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
Lorsque vous exécutez ./bin/daemon avec paramètre --daemon ou -d , alors il deviendra un vrai démon unix. Mais ce n'est pas la voie, comment les démons Unix sont lancés maintenant. Certains scripts init ou fichiers de service sont utilisés à cet effet.
Lorsque vous utilisez la distribution Linux à l'aide de SystemD, vous pouvez essayer de démarrer le démon en utilisant
systemctl start simple-daemon
systemctl status simple-daemon
systemctl reload simple-daemon
systemctl stop simple-daemon
Remarque: Les fichiers d'unité
simple-daemon.serviceetforking-daemon.servicesont copiés dans le répertoire/usr/lib/systemd/systempendant l'installation à l'aide de la commande de matemake install.
Lorsque vous utilisez Redhat 4/5/6 ou CentOS, vous pouvez essayer d'utiliser le script init:
cp daemon.init /etc/rc.d/init.d/daemond
Ensuite, il devrait être possible de contrôler le démon en utilisant:
service daemon start
service daemon status
service daemon reload
service daemon stop