我是新来的,我也是一个新的linux用户,我使用的是debian 12。我配置了proftpd服务并满足我的需求,但是当我重新启动操作系统时,该服务不会自动启动操作系统加载。
我必须运行“systemctl start 或 restart proftpd”命令才能使系统正常工作。
我确实需要 proftpd 在连接到服务器时自动工作。
答案1
如果systemctl status proftpd
没有说明该服务当前已启用,您需要systemctl enable proftpd
告诉 systemd 该服务应该在启动时启动。
相反,如果您想阻止某个服务在启动时启动,您可以systemctl disable <service name>
.
Debian 12proftpd
还包括以下规定套接字激活:使用一个proftpd.socket
单元时,systemd
被告知代表 开启一个侦听套接字proftpd
,并且只有当第一个传入 FTP 连接尝试到达时,systemd 才会启动实际proftpd
服务,并且传入的 FTP 连接将移交给它。这类似于经典的inetd
和xinetd
与某些服务的使用方式,以最大限度地减少空闲时的系统资源使用。具体proftpd
而言,此操作模式需要配置行:
ServerType inetd
在/etc/proftpd/proftpd.conf
。
但既然你说systemctl start proftpd
让服务为你工作,你似乎已经配置了 proftpd 进行独立操作,所以套接字激活与你无关。在这种情况下,您可以(并且应该)禁用该proftpd.socket
设备,并让
ServerType standalone
在proftpd
的配置中。
答案2
此问题也存在于 Ubuntu 22.04 上,例如在 Azure Cloud 中。原因是,只要 proftpd 无法将其自身解析/etc/hostname
为 IP,守护进程就会启动。后来就可以解决了。
作为解决方法添加
[...]
127.0.0.1 your-servername-from-etc-hostname
[...]
应该/etc/hosts
有效。
但老实说,deb 软件包维护者应该通过正确的 systemd 配置来解决这个问题。