This is a little program that you can use under ioFTPD. It will list the processes that are running under ioFTPD as a process, so with it you can see which non tcl scripts are running. You can also choose to kill such a process if it seems to be hanging too long. Install by copying ioProcess.exe to your ioFTPD\scripts dir. Edit ioFTPD.ini and add the PROC = ..... as mentioned below. [FTP_Custom_Commands] PROC = %EXEC ..\scripts\ioProcess.exe Be aware that this command is not for everyone so I advise the rights to be added as well. For example: [FTP_SITE_Permissions] PROC = M Example of use: On connection 1 I have a small program that is hanging. It apparently is taking quite some seconds. This program is args.exe which I called from an event in ioFTPD. So I type via connection 2: site proc (so I execute ioProcess.exe under ioFTPD). And as reply it gives me: 200- pid: process started at kernel user 200- exefile yyyy-mm-dd hh:mm:ss mm:ss mm:ss 200- 3992: args.exe 2004-04-21 21:12:23 00:03 00:52 200- 4060: ioProcess.exe 2004-04-21 22:24:04 00:00 00:00 200 Command successful. The 1st column is the process id. The 2nd column is the exe that is called. The 3rd and 4th column are the date/time when the process was started, this is a criteria for determining a hanging process. In this example process 3992 has been hanging for more then a full hour. The 5th column is the time used in the kernel-mode, here 3 seconds (for pid=3992) The 6th column is the time used in the user-mode, here 52 seconds (for pid=3992) If one of these columns is quite high then apparently the process is hanging or very busy. Since 3992 seems to be hanging I type: site proc kill 3992 with result: 200-args.exe terminated 200 Command successful. On hanging connection nr 1 I now see: 550 Command failed. This is because the command is killed and thus the script passes a fail. Version info: 1.0.0: First version, shows processes from io and allows kill.