When ProFTPD shows ServerType inetd
in its configuration, this indicates it's running under the internet superserver (inetd/xinetd) rather than as a standalone daemon. This explains why you can't find it in typical init scripts or process listings.
Since it's started by inetd/xinetd, ProFTPD only spawns when an FTP connection is made. Try these verification methods:
# Check xinetd configuration
grep -r "proftpd" /etc/xinetd.d/
# Alternative inetd check
cat /etc/inetd.conf | grep ftp
# Verify via netstat
netstat -tulnp | grep ftp
# Check recent connections
journalctl -u xinetd --since "1 hour ago" | grep ftp
For inetd-controlled services, you need to either:
- Disable the service in xinetd/inetd configuration
- Restart the superserver itself
# Method 1: Disable in xinetd
sudo sed -i 's/disable.*/disable = yes/' /etc/xinetd.d/proftpd
sudo systemctl restart xinetd
# Method 2: Direct inetd restart
sudo /etc/init.d/inetd restart
For better control, consider switching to standalone mode:
# Edit proftpd.conf
sudo nano /etc/proftpd.conf
# Change: ServerType standalone
# Create init script (Debian/Ubuntu example)
sudo cp /usr/share/doc/proftpd/examples/init.d/proftpd /etc/init.d/
sudo chmod +x /etc/init.d/proftpd
sudo update-rc.d proftpd defaults
# Start service
sudo systemctl start proftpd
For deeper troubleshooting, run ProFTPD in debug mode:
# Standalone debug mode
proftpd -n -d 5
# For inetd debugging
Modify /etc/xinetd.d/proftpd to add:
server_args = -n -d 5
Then restart xinetd
When dealing with ProFTPD running in inetd
mode, traditional service management commands won't work because the daemon isn't running as a standalone service. Your observations about missing init scripts and empty process listings are expected behavior for inetd services.
First, verify if ProFTPD is configured in your system's inetd or xinetd configuration:
# For traditional inetd:
grep proftpd /etc/inetd.conf
# For xinetd systems:
grep -r proftpd /etc/xinetd.d/
To restart ProFTPD when running under inetd, you need to restart the super-server:
# For systems using inetd:
sudo /etc/init.d/inetd restart
# For systems using xinetd:
sudo systemctl restart xinetd
# or
sudo service xinetd restart
If you prefer ProFTPD as a standalone service, modify /etc/proftpd.conf
:
ServerType standalone
Then create an init script or systemd unit. For systemd:
# /etc/systemd/system/proftpd.service
[Unit]
Description=ProFTPD FTP Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/proftpd
ExecStop=/usr/bin/pkill proftpd
Restart=on-failure
[Install]
WantedBy=multi-user.target
To confirm ProFTPD is accepting connections regardless of mode:
telnet localhost 21
netstat -tulnp | grep 21
ss -tulnp | grep 21
Enable verbose logging in proftpd.conf
:
LogLevel debug
Then monitor logs in real-time:
tail -f /var/log/proftpd/proftpd.log
For systems with systemd managing xinetd:
# Check status
sudo systemctl status xinetd
# Restart service
sudo systemctl restart xinetd
# Enable at boot
sudo systemctl enable xinetd