On my 1.19 experimental Linux dedicated server, #shutdown command takes about 2 minutes to completely terminate the server process.
7:59:59 BattlEye Server: Command received: #lock Result: OK 8:00:14 BattlEye Server: Command received: #shutdown Result: OK 8:00:14 Dedicated host finished (SIGINT signal). 8:02:01 RESOURCES (E): ==== Resource leaks ==== 8:02:01 RESOURCES (E): DZ/animals/animations/cow_skeleton/resting_2_run_R72.anm 1 8:02:01 RESOURCES (E): DZ/animals/animations/cow_skeleton/stand_grazing_2_walk_opt_L144.anm 1 8:02:01 RESOURCES (E): DZ/animals/animations/cow_skeleton/stand_grazing_2_walk_opt_L72.anm 1 (... many more resources ...) 8:02:01 RESOURCES (E): DZ/anims/anm/infected/moves/obstacles/z_obstacle_210cm.anm 1 8:02:01 RESOURCES (E): DZ/anims/anm/infected/moves/obstacles/z_obstacle_50cm.anm 1 8:02:01 RESOURCES (E): DZ/anims/anm/infected/moves/obstacles/z_obstacle_50cm_inplace.anm 1 8:02:02 --- Termination successfully completed --- src/tier1/fileio.cpp (5164) : m_vecRegisteredWriters.Count() == 0 src/tier1/fileio.cpp (5164) : m_vecRegisteredWriters.Count() == 0 8:02:02 Memory should be free now. 8:02:02 2592064 B not deallocated