No Machine Wrapper

The No Machine client allows you to choose between five types of UNIX session: KDE, GNOME, CDE, XDM and custom. In the first four cases the appropriate session startup is invoked (eg startkde) and the No Machine X server is destroyed when the session exits. In the case of a custom session, however, No Machine doesn't know when your program has finished (it may have put itself in the background) so the X server stays running and you have to terminate the No Machine session manually.

This simple wrapper script, placed in /usr/NX/bin, takes care of killing the X server after your session is completed.

nxnode=$(ps -o ppid= -p $PPID)
nxagent=$(pgrep -P $nxnode -u $USER -x nxagent)
exec kill $nxagent

To start an XFCE session, for example, you would use nxwrapper xfce4-session as the command to run.