Я скомпилировал из источника samba 4.8
на гостеприимной Ubuntu, но я не могу запустить его.
При следовании инструкциям samba.org я перешел к сути дела где в /usr/local/samba/sbin
и /usr/local/samba/bin
У меня есть исполняемые файлы, и прежде чем я удалил старое 4.3
версия на моем ПК я сохранил /etc/init.d/smbd
файл, чтобы заставить это работать. Но даже после изменения местоположения двоичных файлов в init.d файле это все еще не работает.
если я работаю,/etc/init.d/smbd запускаются, это - то, что я получаю
[....] Starting smbd (via systemctl): smbd.serviceJob for smbd.service failed because the control process exited with error code. See "systemctl status smbd.service" and "journalctl -xe" for details.
failed!
Это - вывод для journalctl - ксенон
-- i servizi attivati sono in fase di completamento.
--
-- L'avvio del kernel ha richiesto KERNEL_USEC microsecondi.
--
-- L'avvio del disco RAM ha richiesto INITRD_USEC microsecondi.
--
-- L'avvio dello userspace ha richiesto 24776 microsecondi.
mar 26 23:18:12 apollo systemd[1]: Started User Manager for UID 1001.
-- Subject: L'unità user@1001.service termina la fase di avvio
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- L'unità user@1001.service ha terminato la fase di avvio.
--
-- La fase di avvio è done.
mar 26 23:18:30 apollo sudo[11809]: pam_unix(sudo:session): session closed for user root
mar 26 23:18:46 apollo sudo[11913]: francesco : TTY=pts/1 ; PWD=/home/francesco ; USER=root ; COMMAND=/bin/nano /lib/systemd/system/smbd.service
mar 26 23:18:46 apollo sudo[11913]: pam_unix(sudo:session): session opened for user root by francesco(uid=0)
mar 26 23:19:03 apollo sudo[11913]: pam_unix(sudo:session): session closed for user root
mar 26 23:19:06 apollo sudo[11929]: francesco : TTY=pts/1 ; PWD=/home/francesco ; USER=root ; COMMAND=/etc/init.d/smbd start
mar 26 23:19:06 apollo sudo[11929]: pam_unix(sudo:session): session opened for user root by francesco(uid=0)
mar 26 23:19:06 apollo systemd[1]: Starting Samba SMB/CIFS server...
-- Subject: L'unità smbd.service inizia la fase di avvio
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- L'unità smbd.service ha iniziato la fase di avvio.
mar 26 23:19:06 apollo systemd[1]: smbd.service: Control process exited, code=exited status=1
mar 26 23:19:06 apollo systemd[1]: Failed to start Samba SMB/CIFS server.
-- Subject: L'unità smbd.service è fallita
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- L'unità smbd.service è fallita.
--
-- Il risultato è failed.
mar 26 23:19:06 apollo systemd[1]: smbd.service: Unit entered failed state.
mar 26 23:19:06 apollo systemd[1]: smbd.service: Failed with result 'exit-code'.
mar 26 23:19:06 apollo sudo[11929]: pam_unix(sudo:session): session closed for user root
Извините за итальянские сообщения, но важные являются английскими.
Это - init.d сценарий
#!/bin/sh
### BEGIN INIT INFO
# Provides: smbd
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start: slapd cups
# Should-Stop: slapd cups
# Short-Description: start Samba SMB/CIFS daemon (smbd)
### END INIT INFO
PIDDIR=/var/run/samba
SMBDPID=$PIDDIR/smbd.pid
# clear conflicting settings from the environment
unset TMPDIR
# See if the daemons are there
test -x /usr/local/samba/sbin/smbd || exit 0
. /lib/lsb/init-functions
case $1 in
start)
if init_is_upstart; then
exit 1
fi
SERVER_ROLE=`samba-tool testparm --parameter-name="server role" 2>/dev/null | tail -1`
if [ "$SERVER_ROLE" = "active directory domain controller" ]; then
exit 0
fi
log_daemon_msg "Starting SMB/CIFS daemon" smbd
# Make sure we have our PIDDIR, even if it's on a tmpfs
install -o root -g root -m 755 -d $PIDDIR
if ! start-stop-daemon --start --quiet --oknodo --exec /usr/local/samba/sbin/smbd -- -D; then
log_end_msg 1
exit 1
fi
log_end_msg 0
;;
stop)
if init_is_upstart; then
exit 0
fi
log_daemon_msg "Stopping SMB/CIFS daemon" smbd
start-stop-daemon --stop --quiet --pidfile $SMBDPID
# Wait a little and remove stale PID file
sleep 1
if [ -f $SMBDPID ] && ! ps h `cat $SMBDPID` > /dev/null
then
# Stale PID file, remove it (should be removed by
# smbd itself IMHO).
rm -f $SMBDPID
fi
log_end_msg 0
;;
reload)
log_daemon_msg "Reloading /etc/samba/smb.conf" smbd
start-stop-daemon --stop --quiet --signal HUP --pidfile $SMBDPID
log_end_msg 0
;;
restart|force-reload)
if init_is_upstart; then
exit 1
fi
$0 stop
sleep 1
$0 start
;;
status)
status_of_proc -p $SMBDPID /usr/local/samba/sbin/smbd smbd
exit $?
;;
*)
echo "Usage: /etc/init.d/smbd {start|stop|reload|restart|force-reload|status}"
exit 1
;;
esac
exit 0
И это - smbd.service
[Unit]
Description=Samba SMB/CIFS server
After=network.target nmbd.service winbindd.service
[Service]
Type=forking
ExecStart=/usr/local/samba/sbin/smbd -D
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
Действительно ли PIDDIR и SMBPID важны?
Даже если я работаю sudo /usr/local/samba/sbin/smbd -D
Я все еще не получаю ничего, никакой ошибки и не кого-то обнаруживающегося в ps aux | grep smb
После небольшого количества тестирования, главным образом рабочего sudo smbd -FS
для проявления вывода как stdout я нашел что исполняемый файл расположенный в /usr/local/samba/sbin
не загружается /etc/samba/smb.conf
файл, но /usr/local/samba/etc/smb.conf
. После копирования по умолчанию в ожидаемом месте все начало работать правильно.
Это был, вероятно, флаг конфигурации, который я пропустил. Надежда это помогает кому-то еще с той же проблемой.
Кроме того, так как установка от исходного процесса не делает этого, я должен был добавить smb.service
в /etc/avahi/services/
папка, которая будет рекламироваться правильно.
Я все еще продолжаю работать, как иметь его, появляются в сети в Windows, но соединяющийся с \ip.add.re.ss это работает, и на Mac это показывает правильно.