5 votes

samba ne démarre pas à partir de systemctl : timeout

Je tente de mettre en place un serveur samba sur un serveur ubuntu (18.04). J'ai dû compiler à partir des sources car j'ai besoin d'un support spécial pour Mac OS et Time Machine qui n'est disponible que dans les versions 4.8 ou supérieures.

J'ai essayé d'installer 4.9.2 en suivant les instructions. ici à l'exception du fait que j'ai dû désactiver le support LDAP et AD pour configurer. La construction et l'installation se sont bien passées, j'ai donc copié les fichiers systemctl en place et j'ai essayé de tout démarrer.

super@fulton:~/samba/samba-samba-4.9.2$ sudo systemctl start {nmb,smb,winbind}.service
Job for nmb.service failed because a timeout was exceeded.
See "systemctl status nmb.service" and "journalctl -xe" for details.
Job for winbind.service failed because a timeout was exceeded.
See "systemctl status winbind.service" and "journalctl -xe" for details.
Job for smb.service failed because a timeout was exceeded.
See "systemctl status smb.service" and "journalctl -xe" for details.

le statut donne :

 smb.service - Samba SMB Daemon
   Loaded: loaded (/lib/systemd/system/smb.service; enabled; vendor preset: enabled)
   Active: failed (Result: timeout) since Thu 2019-01-31 14:46:34 NZDT; 13min ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
  Process: 12343 ExecStart=/usr/sbin/smbd --foreground --no-process-group $SMBDOPTIONS (code=killed, signal=TERM)
 Main PID: 12343 (code=killed, signal=TERM)

Jan 31 14:45:04 fulton.geek.nz systemd\[1\]: Starting Samba SMB Daemon...
Jan 31 14:46:34 fulton.geek.nz systemd\[1\]: smb.service: Start operation timed out. Terminating.
Jan 31 14:46:34 fulton.geek.nz systemd\[1\]: smb.service: Failed with result 'timeout'.
Jan 31 14:46:34 fulton.geek.nz systemd\[1\]: Failed to start Samba SMB Daemon.

Mais /var/log/samba/log.smbd suggère que les services ont démarré.

\[2019/01/31 14:45:04.465362,  0\] ../lib/util/become\_daemon.c:138(daemon\_ready)
  daemon\_ready: STATUS=daemon 'smbd' finished starting up and ready to serve connections

il semble donc qu'il y ait un problème avec le script de systemd et qu'il tue le processus lorsqu'il n'obtient pas une réponse attendue.

Des idées sur ce qu'il faut rechercher ?

mise à jour : j'ai réussi à démarrer smbd à partir de la ligne de commande et à m'attacher à shared, ce qui suggère qu'il y a un problème avec le script de systemd. Je note que smbd est invoqué avec le --foreground est-ce correct ? Je suppose que systemd a l'intention de mettre en arrière-plan le processus lui-même afin qu'il puisse le gérer ?

Voici la configuration :

[Unit]
Description=Samba SMB Daemon
Documentation=man:smbd(8) man:samba(7) man:smb.conf(5)
Wants=network-online.target
After=network.target network-online.target nmb.service winbind.service

[Service]
Type=notify
NotifyAccess=all
PIDFile=/var/run/samba/smbd.pid
LimitNOFILE=16384
EnvironmentFile=-/etc/sysconfig/samba
ExecStart=/usr/sbin/smbd --foreground --no-process-group $SMBDOPTIONS
ExecReload=/bin/kill -HUP $MAINPID
LimitCORE=infinity

[Install]
WantedBy=multi-user.target

8voto

Anthony Vito Points 81

J'ai rencontré ce problème en essayant de faire fonctionner différents types de machines avec la dernière version de Samba pour l'utilisation de Time Machine.

Une solution consiste à remplacer le Type=notify par le Type=simple. Il y a quelque chose à propos des nouvelles versions de Samba qui ne sont pas compatibles avec la façon dont systemd gère la communication entre les processus.

-Type=notify
+Type=simple

Ensuite, exécutez systemctl daemon-reload et essayez de le redémarrer.

7voto

Giberno Points 743

Ce qui suit a fonctionné pour moi :

  1. Exécutez la commande suivante pour modifier les paramètres de samba :

     sudo vi /etc/samba/smb.conf
  2. presse a une fois (Ceci est utilisé pour activer le mode d'édition sur vi)

  3. Commentez (ajoutez un hashtag ( # ) au début de la ligne) interfaces = x.x.x.x/x

  4. Commentez également bind interfaces only = x

Cela devrait ressembler à ça maintenant :

#    interfaces = x.x.x.x/x
# There is some info text
#    bind interfaces only = x
  1. Appuyez sur ESC puis tapez :wq et appuyez sur intro (Si vous avez utilisé nano, vous devez appuyer sur Ctrl+O et ensuite Ctrl+X ).

  2. Rechargez le service samba en cours d'exécution :

     sudo systemctl restart nmbd
  3. Maintenant, nous allons vérifier si ça a marché. Exécutez la commande suivante :

     systemctl status nmbd.service
  4. Le terminal devrait maintenant afficher active(running) en vert

1voto

Rob Points 1092

Plus de problème après avoir supprimé tous les fichiers systemd. Le problème peut provenir d'un fichier systemd d'une ancienne installation de samba. Ceux-ci devront être supprimés. Dans la version 4.10.10, il n'y a pas de fichier systemd, ils sont générés automatiquement par /etc/init.d/smbd. Vérifiez la sortie, elle devrait indiquer ceci :

-> % sudo systemctl status smbd.service                                                             
 smbd.service - LSB: Samba SMB/CIFS daemon (smbd)
   Loaded: loaded (/etc/init.d/smbd; generated)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X