Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 27-11-2016 19:21:55

Xunil
Membre
Distrib. : Debian GNU/Linux 7.6 - Wheezy
Noyau : 3.10.23
Inscription : 19-03-2016

Créer un service(daemon) qui peut être lancé par un utilisateur lambda

Bonjour smile

J'aimerais créer un daemon qu'un utilisateur lambda puisse lancer et stopper.

J'ai réussi à créer mon propre daemon en suivant ce tuto https://techjp.net/creation-dun-daemon-linux/ et ça fonctionne très bien. J'ai un script Timer (qui inscrit l'uptime dans un .txt toute les 5 secondes) qui est appelé quand je lance mon service du même nom.

Mais ce que je souhaiterais c'est qu'un utilisateur autre que root puisse lancer/stopper ce service mais je ne sais pas si c'est possible (vis à vis des droits des dossiers où se trouvent les services (/etc/init.d/))

J'ai tenté plusieurs autres tutos sur le web, avec d'autres emplacements de répertoires mais ça ne fonctionnait pas ou alors je m'y prenait mal : https://wiki.archlinux.org/index.php/Systemd/User d'autant plus que c'est pour ArchLinux et que ce n'est peu être pas la même chose sous Debian Wheezy

J'ai tenté la commande "daemon" (du paquet du même nom) mais quand je lance juste le script il reste en sommeil (satut S avec la commande ps et rien ne se passe)


Y a t-il un moyen de créer un service "utilisateur"  ?

Merci smile

Dernière modification par Xunil (27-11-2016 19:25:18)

Hors ligne

#2 27-11-2016 20:04:41

Severian
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 4.6.0-0.bpo.1-amd64
(G)UI : Openbox 3.6.1-2
Inscription : 13-12-2014

Re : Créer un service(daemon) qui peut être lancé par un utilisateur lambda

bonsoir

tu veux faire quoi ?

petite exemple de "service" que j'ai avec systemd
feh-wallpaper.service

[Unit]
Description=Random wallpaper with feh

[Service]
Type=oneshot
ExecStart=/home/sev/.bin/sev-random-wallpaper

[Install]
WantedBy=default.target
 


feh-wallpaper.timer

[Unit]
Description=Random wallpaper with feh

[Timer]
OnStartupSec=5m
OnUnitActiveSec=1hr
Unit=feh-wallpaper.service

[Install]
WantedBy=default.target
 


le script

#! /bin/bash
DISPLAY=:0 /usr/bin/feh --bg-max "$(find ~/.wallpaper/|shuf|head -n 1)"
 


les fichiers feh-wallpaper.service et feh-wallpaper.timer sont placés dans ~/.config/systemd/
le script est dans ~/.bin

comme pour les services systemd root, le service doit être activé mais avec l'option --user

systemctl --user enable feh-wallpaper.timer


systemctl --user start feh-wallpaper.timer




bon en même temps ça ne fonctionnera pas avec wheezy neutral

Dernière modification par Severian (27-11-2016 20:14:52)


"il est urgent d'attendre" (bendia)
ob3-debian2-150x50.png

Hors ligne

#3 27-11-2016 23:02:05

Xunil
Membre
Distrib. : Debian GNU/Linux 7.6 - Wheezy
Noyau : 3.10.23
Inscription : 19-03-2016

Re : Créer un service(daemon) qui peut être lancé par un utilisateur lambda

Bonsoir,

Merci pour ta réponse, elle semble bien correspondre à ce dont j'ai besoin !

Je teste ça d'ici demain

Merci beaucoup

Hors ligne

#4 27-11-2016 23:24:37

robert2a
Membre
Lieu : France
Distrib. : Stretch
Noyau : Linux 4.8.0-1-amd64
(G)UI : Mate 1.16.1
Inscription : 15-11-2014

Re : Créer un service(daemon) qui peut être lancé par un utilisateur lambda

Bonsoir

tu n a pas systemd avec wheezy ça ne fonctionnera pas , Severian le précise a la fin de son post , dans un premier temps il a pas du voir que tu étais sous wheezy   hmm

Hors ligne

#5 28-11-2016 07:55:25

Severian
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 4.6.0-0.bpo.1-amd64
(G)UI : Openbox 3.6.1-2
Inscription : 13-12-2014

Re : Créer un service(daemon) qui peut être lancé par un utilisateur lambda

robert2a a écrit :

Bonsoir

tu n a pas systemd avec wheezy ça ne fonctionnera pas , Severian le précise a la fin de son post , dans un premier temps il a pas du voir que tu étais sous wheezy   hmm




c'est ça neutral


"il est urgent d'attendre" (bendia)
ob3-debian2-150x50.png

Hors ligne

#6 28-11-2016 17:39:29

Xunil
Membre
Distrib. : Debian GNU/Linux 7.6 - Wheezy
Noyau : 3.10.23
Inscription : 19-03-2016

Re : Créer un service(daemon) qui peut être lancé par un utilisateur lambda

Ah oui mince hmm

J'ai vu que la commande systemctl n'existe même pas sous Wheezy hmm (j'ai vu par contre qu'elle existe sur Jessie, je suppose que c'est donc possible sur cette version ?)

Mais concernant Wheezy, j'aimerais savoir si on peu quand même plus ou moins faire la même chose, s'il existe un équivalent car c'est quand même bien pratique de créer un service qui peut être lancé par un utilisateur...

Merci smile

Hors ligne

#7 29-11-2016 20:05:04

domainedeleau
Membre
Distrib. : jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 19-11-2016
Site Web

Re : Créer un service(daemon) qui peut être lancé par un utilisateur lambda

Bonjour,

tu programmes quelle distribution ?

Les scripts dans le répertoire /etc/init.d sont utilisés pour démarrent, arrête ou redémarre les démons système.

"/etc/init.d/functions"  contient des fonctions à utiliser par la plupart ou tous les scripts shell stockés dans le répertoire /etc/init.d."

Mais dans debian c'est "/lib/lsb/init-functions "

Et en ce qui concerne les droit utilisateurs chmod x mon_programme.sh , non ?

Hors ligne

#8 29-11-2016 23:10:38

MicP
Membre
Distrib. : debian stable
Noyau : Linux 3.16.0-4-amd64
(G)UI : Xfce
Inscription : 29-02-2016

Re : Créer un service(daemon) qui peut être lancé par un utilisateur lambda

Bonsoir

Xunil a écrit :

… créer un daemon qu'un utilisateur lambda puisse lancer et stopper.
… c'est pour ArchLinux


Il y a de la très bonne documentation sur ArchLinux https://wiki.archlinux.org/index.php/Systemd/User

Dernière modification par MicP (29-11-2016 23:11:12)

Hors ligne

Pied de page des forums