Eu acho que isso depende de como você mata o processo socat. Provavelmente socat não aceita o sinal que você está usando, tente com 9:
kill -9 pid
A saída de ps deve mostrar mais de um pid para o processo socat, você tem que escolher o caminho certo.
Logo após você ter executado o comando socat, você verá apenas um processo:
[root@centos03 ~]# ps aux | grep socat
root 28801 0.0 0.3 41684 1936 pts/0 S+ 15:22 0:00 socat TCP-LISTEN:8123,fork TCP:web:80
root 28803 0.0 0.1 103244 848 pts/3 S+ 15:22 0:00 grep socat
Quando o cliente estabelecer uma conexão, você verá outro processo:
[root@centos03 ~]# ps aux | grep socat
root 28801 0.0 0.3 41684 1940 pts/0 S+ 15:22 0:00 socat TCP-LISTEN:8123,fork TCP:web:80
root 28807 0.0 0.2 45860 1452 pts/0 S+ 15:25 0:00 socat TCP-LISTEN:8123,fork TCP:web:80
root 28809 0.0 0.1 103244 844 pts/3 S+ 15:26 0:00 grep socat
Agora, se você matar o processo com o pid 28801, nenhuma nova conexão será permitida, mas o cliente ainda estará conectado até que você mate o processo com o pid 28807