Bug 56982

Summary: proftpd: Улучшенный запуск в systemd
Product: Sisyphus Reporter: Арсений <a.romenskiy2012>
Component: proftpdAssignee: Konstantin A Lepikhov (L.A. Kostis) <lakostis>
Status: CLOSED WORKSFORME QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P5 CC: antohami, ender, lakostis
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Арсений 2025-11-24 11:39:04 MSK
Как было описано в баге (#56961).
Предлагаю отказаться от pid файла в пользу запуска proftpd не сервис режиме.
Если сделать сервис так:
proftpd.service:
[Unit]
Description=ProFTPD FTP Server
After=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/proftpd -n

[Install]
WantedBy = multi-user.target


Где мы запускаем proftpd с флагом -n
proftpd будет держать сессию, и писать логи,
от чего сервис может корректно работать в типе simple. 

Достоинства:
Мы явно видим что делает сервис.
Мы не используем pid файл.
При stop мы гарантированно убиваем сервис с дочками.

Отказ от pid файла может предотвратить потенциальные ошибки в будущем.
Comment 1 Alexander Makeenkov 2025-11-24 11:47:16 MSK
*** Bug 56961 has been marked as a duplicate of this bug. ***
Comment 2 Konstantin A Lepikhov (L.A. Kostis) 2026-05-13 14:59:39 MSK
(In reply to Арсений from comment #0)
> Как было описано в баге (#56961).
> Предлагаю отказаться от pid файла в пользу запуска proftpd не сервис режиме.
> Если сделать сервис так:
> proftpd.service:
> [Unit]
> Description=ProFTPD FTP Server
> After=network.target
> 
> [Service]
> Type=simple
> ExecStart=/usr/sbin/proftpd -n
> 
> [Install]
> WantedBy = multi-user.target
> 
> 
> Где мы запускаем proftpd с флагом -n
> proftpd будет держать сессию, и писать логи,
> от чего сервис может корректно работать в типе simple. 
> 
> Достоинства:
> Мы явно видим что делает сервис.
> Мы не используем pid файл.
> При stop мы гарантированно убиваем сервис с дочками.
> 
> Отказ от pid файла может предотвратить потенциальные ошибки в будущем.

В новой версии (1.3.10) будет отдельный модуль для systemd, поэтому нет смысла менять что то в новой версии. Для 1.3.9 я могу сделать исправление как предложено.
Comment 3 Konstantin A Lepikhov (L.A. Kostis) 2026-05-13 15:08:29 MSK
Хотя, что именно нужно исправить?

❯ sudo apt-get install proftpd                                                                                                               
[sudo] password for lakostis:                                                                                                                
Reading Package Lists... Done                                                                                                                
Building Dependency Tree... Done                                                                                                             
The following NEW packages will be installed:                                                                                                
  proftpd                                                                                                                                    
0 upgraded, 1 newly installed, 0 removed and 3 not upgraded.                                                                                 
Need to get 0B/1473kB of archives.                                                                                                           
After unpacking 6733kB of additional disk space will be used.                                                                                
Committing changes...                                                                                                                        
Preparing...                                                                                                                                                                  #################################################################################################### [100%] 
Updating / installing...                                                                                                                     
1: proftpd-1.3.9-alt1                                                                                                                                                         #################################################################################################### [100%] 
egrep: warning: egrep is obsolescent; using grep -E                                                                                          
egrep: warning: egrep is obsolescent; using grep -E                                                                                          
Done. 

❯ sudo fgrep standalone /etc/proftpd.conf
fgrep: warning: fgrep is obsolescent; using grep -F
ServerType                      standalone

❯ sudo systemctl start proftpd
                                                                      
~ 
❯ sudo systemctl status proftpd
● proftpd.service - ProFTPD FTP Server
     Loaded: loaded (/usr/lib/systemd/system/proftpd.service; disabled; preset: disabled)                                                    
     Active: active (running) since Wed 2026-05-13 14:03:08 CEST; 1s ago                                                                     
 Invocation: a476da67f1844244a9b3f4ce469d3c62
    Process: 286461 ExecStart=/usr/sbin/proftpd (code=exited, status=0/SUCCESS)                                                              
   Main PID: 286462 (proftpd)
      Tasks: 1 (limit: 38409)
     Memory: 8.3M (peak: 9.3M)
        CPU: 17ms
     CGroup: /system.slice/proftpd.service
             └─286462 "proftpd: (accepting connections)"

May 13 14:03:08 lks.home systemd[1]: Starting proftpd.service - ProFTPD FTP Server...                                                        
May 13 14:03:08 lks.home proftpd[286462]: 192.168.1.100 - ProFTPD 1.3.9 (stable) (built Mon May 12 2025 20:19:24 UTC) standalone mode STARTUP
May 13 14:03:08 lks.home systemd[1]: Started proftpd.service - ProFTPD FTP Server.

❯ sudo ls -lapt /run/proftpd/
total 24
drwxr-x---  2 root root   140 May 13 14:04 ./
-rw-r--r--  1 root root     7 May 13 14:04 proftpd.pid
-rw-r--r--  1 root root    32 May 13 14:04 proftpd.scoreboard
-rw-r--r--  1 root root     0 May 13 14:04 proftpd.scoreboard.lck
srwxrwxrwx  1 root root     0 May 13 14:04 proftpd.sock
-rw-r--r--  1 root root 12608 May 13 14:03 proftpd.delay
drwxr-xr-x 60 root root  1600 May 13 14:01 ../


❯ sudo systemctl stop proftpd

~ 
❯ sudo systemctl status proftpd
○ proftpd.service - ProFTPD FTP Server
     Loaded: loaded (/usr/lib/systemd/system/proftpd.service; disabled; preset: disabled)
     Active: inactive (dead)

❯ sudo systemctl stop proftpd

~ 
❯ sudo systemctl status proftpd
○ proftpd.service - ProFTPD FTP Server
     Loaded: loaded (/usr/lib/systemd/system/proftpd.service; disabled; preset: disabled)
     Active: inactive (dead)

May 13 14:03:38 lks.home systemd[1]: proftpd.service: Deactivated successfully.
May 13 14:03:38 lks.home systemd[1]: Stopped proftpd.service - ProFTPD FTP Server.
May 13 14:04:26 lks.home systemd[1]: Starting proftpd.service - ProFTPD FTP Server...
May 13 14:04:26 lks.home proftpd[287389]: 192.168.1.100 - ProFTPD 1.3.9 (stable) (built Mon May 12 2025 20:19:24 UTC) standalone mode STARTUP
May 13 14:04:26 lks.home systemd[1]: Started proftpd.service - ProFTPD FTP Server.
May 13 14:08:14 lks.home proftpd[287389]: 192.168.1.100 - ProFTPD killed (signal 15)
May 13 14:08:14 lks.home proftpd[287389]: 192.168.1.100 - ProFTPD 1.3.9 standalone mode SHUTDOWN
May 13 14:08:14 lks.home systemd[1]: Stopping proftpd.service - ProFTPD FTP Server...
May 13 14:08:14 lks.home systemd[1]: proftpd.service: Deactivated successfully.
May 13 14:08:14 lks.home systemd[1]: Stopped proftpd.service - ProFTPD FTP Server.

т.е. что не пишется и где что не создается?