如何使用 systemctl start tftp 命令在 ubuntu 中启动 tftp 服务器?

如何使用 systemctl start tftp 命令在 ubuntu 中启动 tftp 服务器?

我使用的是 ubuntu 16.04,我已经安装了 tftpd-hpa 服务器。我想用 systemctl start tftp 命令启动我的服务器。我在系统文件夹中创建了一个 tftp 服务文件,配置如下

[Unit]
Description=Tftp Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/in.tftpd /var/tftp
ExecStop=/bin/kill -15 $MAINPID


[Install]
WantedBy=multi-user.target

每当我运行

systemctl 启动 tftp

我收到以下消息:

Job for tftp.service failed because a configured resource limit was exceeded. See "systemctl status tftp.service" and "journalctl -xe" for details.

执行后:

systemctl status tftp.service 

我收到以下消息:

● tftp.service - Tftp Server
   Loaded: loaded (/etc/systemd/system/tftp.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2017-07-26 14:38:22 IST; 26s ago
  Process: 3309 ExecStart=/usr/sbin/in.tftpd /var/tftp (code=exited, status=1/FAILURE)

Jul 26 14:38:22 map-VB systemd[1]: Starting Tftp Server...
Jul 26 14:38:22 map-VB systemd[1]: tftp.service: Control process exited, code=exited status=1
Jul 26 14:38:22 map-VB systemd[1]: Failed to start Tftp Server.
Jul 26 14:38:22 map-VB systemd[1]: tftp.service: Unit entered failed state.
Jul 26 14:38:22 map-VB systemd[1]: tftp.service: Failed with result 'exit-code'.

非常感谢任何指导。

跑步后

journalctl -xe

它给出了以下消息

-- Unit acpid.service has finished starting up.
-- 
-- The start-up result is done.
Jul 26 14:38:15 map-VB systemd[1]: Started CUPS Scheduler.
-- Subject: Unit cups.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit cups.service has finished starting up.
-- 
-- The start-up result is done.
Jul 26 14:38:15 map-VB polkitd(authority=local)[841]: Unregistered Authentication Agent for unix-process:3270:263001 (system bus name :1.147, 
Jul 26 14:38:17 map-VB polkitd(authority=local)[841]: Registered Authentication Agent for unix-process:3300:263641 (system bus name :1.159 [/u
Jul 26 14:38:17 map-VB gnome-session[1420]: Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Jul 26 14:38:22 map-VB polkitd(authority=local)[841]: Operator of unix-session:c1 successfully authenticated as unix-user:map to gain TEMPORAR
Jul 26 14:38:22 map-VB systemd[1]: Starting Tftp Server...
-- Subject: Unit tftp.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit tftp.service has begun starting up.
Jul 26 14:38:22 map-VB tftpd[3309]: recvfrom: Socket operation on non-socket
Jul 26 14:38:22 map-VB systemd[1]: tftp.service: Control process exited, code=exited status=1
Jul 26 14:38:22 map-VB systemd[1]: Failed to start Tftp Server.
-- Subject: Unit tftp.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit tftp.service has failed.
-- 
-- The result is failed.
Jul 26 14:38:22 map-VB systemd[1]: tftp.service: Unit entered failed state.
Jul 26 14:38:22 map-VB systemd[1]: tftp.service: Failed with result 'exit-code'.
Jul 26 14:38:22 map-VB polkitd(authority=local)[841]: Unregistered Authentication Agent for unix-process:3300:263641 (system bus name :1.159, 
Jul 26 14:54:57 map-VB org.gnome.evolution.dataserver.Sources5[1300]: ** (evolution-source-registry:2124): WARNING **: secret_service_search_s
Jul 26 15:00:52 map-VB compiz[1963]: gkr-pam: unlocked login keyring

答案1

请修改您的服务文件:

[Unit]
Description=Tftp Server

[Service]
ExecStart=/usr/sbin/in.tftpd
ExecStop=/bin/kill -15 $MAINPID

StandardInput=socket

[Install]
WantedBy=multi-user.target

由于它是一个守护进程:

[Unit]
Description=Tftp Server

[Service]
Type=forking
ExecStart=/usr/sbin/xinetd
ExecStop=/bin/kill -15 $MAINPID
StandardInput=socket

[Install]
WantedBy=multi-user.target

资料来源:

http://www.linuxcertif.com/man/5/systemd.service/

https://linux.die.net/man/8/xinetd

相关内容