Terminate child processes on ctrl-c

Posted by jackweirdy on Super User See other posts from Super User or by jackweirdy
Published on 2012-06-25T15:13:53Z Indexed on 2012/06/25 15:18 UTC
Read the original article Hit count: 287

In tiny core linux, I have the following script:


#!/bin/sh
# ~/.X.d/freerdp.sh

rdp(){
while true
do
xfreerdp -f [IP Address]
done
}

rdp &

It's pretty simple; when X starts up and checks the .X.d directory (as is the case in tiny core) it finds and executes this script. The script starts up freerdp and keeps a connection open to the server by restarting it whenever it closes. As you can see from the rdp & line, the function is run in the background to allow X to continue its startup routine.

The problem is that whenever I cancel X with a Ctrl-Alt-Backspace the rdp process doesn't die.

I'm looking for a way to kill the process as soon as X finishes, either through:

A) a script, executed on X closing, which kills the process or B) by modifying the script to check the return value of the xfreerdp command.

NB - if the solution does check the return value, it must only end if the command fails to open the X display. For that reason, if you could point me to a reference for xfreerdp return values I'd be grateful.

© Super User or respective owner

Related posts about linux

Related posts about remote-desktop