Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/06/2015, à 22:41

roopkeed

[Résolu] Redemarage service par crontab marche pas.

Salut,
J'utilise btsync pour synchroniser mes fichiers de travail (freelance).
Btsync me semble bien configuré car il tourne bien au démarrage de l'ordi et lorsque le service est lancé manuellement. Mais je ne comprends pas pourquoi, il ne fait plus son job au bour d'un certain temps (quelques heures je crois). C'est peut être un bug btsync.

Quoiqu 'il en soit je relance le service par deux ligne crontab (crontab -e -u user1) :
00 */1 * * * sudo killall btsync
02 */1 * * * /usr/bin/btsync --config /home/user1/.btsync/btsync.conf

.. Et ça ne marche pas alors que ces deux commandes lancées manuellement en ligne de commande dans le terminal fonctionne bien.

Le fichier log (/var/log/syslog) montre bien que les deux commandes sont passées pourtant.
Merci de m'aider à trouver une piste.

Dernière modification par roopkeed (Le 08/06/2015, à 11:30)

Hors ligne

#2 Le 04/06/2015, à 23:06

Zakhar

Re : [Résolu] Redemarage service par crontab marche pas.

Aucune idée (je ne connais pas ce logiciel), mais ça ne m'a pas l'air d'être une très bonne idée de tourner ce genre de soft (même pas libre à ma connaissance) en root !

Un logiciel de sauvegarde de "fichiers de travail" devrait, selon moi, tourner avec les droits de l'utilisateur auquel appartiennent ces fichiers.

Dernière modification par Zakhar (Le 04/06/2015, à 23:09)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#3 Le 04/06/2015, à 23:50

roopkeed

Re : [Résolu] Redemarage service par crontab marche pas.

C'est bien le cas, c'est le user1 qui lance la commande. Le root ne fait que tuer le logiciel.

Hors ligne

#4 Le 04/06/2015, à 23:52

tiramiseb

Re : [Résolu] Redemarage service par crontab marche pas.

Salut,

As-tu configuré sudo pour qu'il autorise le killall sans demander de mot de passe ?

Hors ligne

#5 Le 05/06/2015, à 00:05

roopkeed

Re : [Résolu] Redemarage service par crontab marche pas.

Je pense que oui. Voici un extrait de /etc/sudoers

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Je ne sais pas si cela réponds à ta question. Je ne sais pas ce que fait le "%" devant sudo

Dernière modification par roopkeed (Le 05/06/2015, à 00:06)

Hors ligne

#6 Le 05/06/2015, à 00:21

nany

Re : [Résolu] Redemarage service par crontab marche pas.

Bonjour,

D’une part, si user1 a lancé le processus, il n’a certainement pas besoin des droit super utilisateur pour le tuer.
D’autre part, la commande killall n’est pas une commande interne, donc cron a besoin de son chemin complet pour l’exécuter.

En résumé, esssaye en remplaçant ta première ligne par celle-ci :

00 */1 * * * /usr/bin/killall btsync

Hors ligne

#7 Le 05/06/2015, à 00:25

roopkeed

Re : [Résolu] Redemarage service par crontab marche pas.

Salut nany,
Je me disais que qui peut le plus peut le moins mais je suis ton conseil.
Je remplace ça et je vous dis quoi (ch'ti inside).
merci.

Hors ligne

#8 Le 05/06/2015, à 00:37

nany

Re : [Résolu] Redemarage service par crontab marche pas.

roopkeed a écrit :

Je me disais que qui peut le plus peut le moins

Certes mais dans ce cas ça complique les choses car, comme l’a souligné tiramiseb, sudo demande un retour de mot de passe.
De plus, sudo n’est pas, non plus, une commande interne :

~$ type sudo
sudo est haché (/usr/bin/sudo)

Sinon, l’extrait de ton sudoers montre des lignes qui sont dans la configuration par défaut.
Regarde cette page de doc au chapitre 2.1 : sudoers

Hors ligne

#9 Le 05/06/2015, à 22:55

roopkeed

Re : [Résolu] Redemarage service par crontab marche pas.

nany a écrit :

Bonjour,

D’une part, si user1 a lancé le processus, il n’a certainement pas besoin des droit super utilisateur pour le tuer.
D’autre part, la commande killall n’est pas une commande interne, donc cron a besoin de son chemin complet pour l’exécuter.

En résumé, esssaye en remplaçant ta première ligne par celle-ci :

00 */1 * * * /usr/bin/killall btsync

Cette modif du crontab n'a pas résolu le problème. Je vais trifouiller le fichier /etc/sudoers pour éliminer la demande de mot de passe à la commande /usr/bin/killall et btsync. J'y vais avec des pincettes car j'ai déja planté les permissions de commandes une fois.

Hors ligne

#10 Le 08/06/2015, à 11:25

roopkeed

Re : [Résolu] Redemarage service par crontab marche pas.

A priori ça fonctionne depuis que j'ai changé le fichier sudoers. J'ai rajouté NOPASSWD: ALL au bout de la ligne concernant user1.
Ca donne raison à tiramiseb qui se posait la question des mots de passe demandé lors d'une commande crontab.
Ma solution est assez bourrin au niveau des droits mais le réglage précis de /etc/sudoers fera l'objet d'un autre sujet si je ne trouve pas.
Merci à tous.

Hors ligne