<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  
  
  <channel>
    <title>chrisjrob: vnc</title>
    <link>https://chrisjrob.com</link>
    <atom:link href="https://chrisjrob.com/tag/vnc/feed/index.xml" rel="self" type="application/rss+xml" />
    <description>GNU Linux, Perl and FLOSS</description>
    <language>en-gb</language>
    <pubDate>Fri, 13 Feb 2026 17:22:31 +0000</pubDate>
    <lastBuildDate>Fri, 13 Feb 2026 17:22:31 +0000</lastBuildDate>
    
    <item>
      <title>LTSP | Install X11VNC on LTSP5</title>
      <link>https://chrisjrob.com/2013/03/19/ltsp-install-x11vnc-on-ltsp5/</link>
      <pubDate>Tue, 19 Mar 2013 11:49:39 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2013/03/19/ltsp-install-x11vnc-on-ltsp5</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/ltsp_logo.png" align="right" alt="Featured Image">
         
         <p>This is how I installed x11vnc on our Debian Lenny LTSP5 server, these are my notes, nothing more.  Use at your peril!</p>

<h2 id="installing-x11vnc">Installing x11vnc</h2>

<!--more-->

<p>Enter the chroot</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo chroot /opt/ltsp/i386
</code></pre></div></div>

<p>And update the repositories that the ltsp environment uses for apt-get:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># apt-get update
# apt-get install x11vnc
</code></pre></div></div>

<h2 id="create-start-up-script">Create start-up script</h2>

<p>Still in the chroot, edit <code class="language-plaintext highlighter-rouge">/etc/init.d/x11vnc</code> and copy in the following script:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/sh</span>

<span class="c">### BEGIN INIT INFO</span>
<span class="c"># Provides:x11vnc</span>
<span class="c"># Required-Start:$remote_fs $syslog</span>
<span class="c"># Required-Stop:$remote_fs $syslog</span>
<span class="c"># Default-Start:2 3 4 5</span>
<span class="c"># Default-Stop:0 1 6</span>
<span class="c"># Short-Description:Start X11VNC</span>
<span class="c"># Description:Start VNC server X11VNC at boot</span>
<span class="c">### END INIT INFO</span>

<span class="k">case</span> <span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span> <span class="k">in
        </span>start<span class="p">)</span> 
                <span class="nb">sleep </span>6
                <span class="nv">XAUTH</span><span class="o">=</span><span class="sb">`</span>find /var/run/ldm-xauth<span class="k">*</span> <span class="nt">-type</span> f<span class="sb">`</span>
                logger <span class="nt">-f</span> /var/log/x11vnc <span class="s2">"Starting with </span><span class="nv">$XAUTH</span><span class="s2">"</span>
                start-stop-daemon <span class="nt">--start</span> <span class="nt">--oknodo</span> <span class="nt">--pidfile</span> /var/run/x11vnc.pid <span class="nt">--background</span> <span class="nt">--nicelevel</span> 15 <span class="nt">--make-pidfile</span> <span class="nt">--exec</span> /usr/bin/x11vnc <span class="nt">--</span> <span class="nt">-display</span> :7 <span class="nt">-loop</span> <span class="nt">-passwdfile</span> /etc/x11vncpassword <span class="nt">-nossl</span> <span class="nt">-logfile</span> /var/log/x11vnc <span class="nt">-auth</span> <span class="nv">$XAUTH</span>
        <span class="p">;;</span>
        stop<span class="p">)</span>  
                logger <span class="nt">-f</span> /var/log/x11vnc <span class="s2">"Stopping"</span>
                start-stop-daemon <span class="nt">--stop</span> <span class="nt">--oknodo</span> <span class="nt">--pidfile</span> /var/run/x11vnc.pid
        <span class="p">;;</span>
        restart<span class="p">)</span>
                logger <span class="nt">-f</span> /var/log/x11vnc <span class="s2">"Restarting"</span>
                <span class="nv">$0</span> stop
                <span class="nv">$0</span> start
        <span class="p">;;</span>
        condrestart<span class="p">)</span>
                <span class="nv">PID</span><span class="o">=</span><span class="sb">`</span><span class="nb">cat</span> /var/run/x11vnc.pid<span class="sb">`</span>
                <span class="nv">RUNNING</span><span class="o">=</span><span class="sb">`</span>ps h <span class="nt">--ppid</span> <span class="nv">$PID</span><span class="sb">`</span>
                <span class="k">if</span> <span class="o">[</span> <span class="s2">"</span><span class="nv">$RUNNING</span><span class="s2">"</span> <span class="o">==</span> <span class="s2">""</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
                        </span>logger <span class="nt">-f</span> /var/log/x11vnc <span class="s2">"No process matching /var/run/x11vnc.pid"</span>
                        <span class="nb">echo</span> <span class="s2">"No process matching /var/run/x11vnc.pid"</span>
                        <span class="nv">$0</span> restart
                <span class="k">else   
                        </span>logger <span class="nt">-f</span> /var/log/x11vnc <span class="s2">"Process matching /var/run/x11vnc.pid exists"</span>
                        <span class="nb">echo</span> <span class="s2">"Process matching /var/run/x11vnc.pid exists - no action taken"</span>
                <span class="k">fi</span>
        <span class="p">;;</span>
        <span class="k">*</span><span class="p">)</span>
                <span class="nb">echo</span> <span class="s2">"Usage: </span><span class="nv">$0</span><span class="s2"> start|stop|restart|condrestart"</span>
                <span class="nb">exit </span>1
        <span class="p">;;</span>
<span class="k">esac</span>

<span class="nb">exit </span>0
</code></pre></div></div>

<h2 id="finalise-start-up-script">Finalise start-up script</h2>

<p>Still in the chroot, make the script executable and link it into /etc/rc2.d:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># chmod 755 /etc/init.d/x11vnc
# update-rc.d x11vnc defaults
# ls -al /etc/rc2.d/*x11vnc
</code></pre></div></div>

<h2 id="set-x11vnc-password">Set x11vnc password</h2>

<p>Finally, create the /etc/x11vncpassword file with the password you want to use to connect to your thin clients:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># echo "thepassword" &gt; /etc/x11vncpassword
# chmod 400 /etc/x11vncpassword
# chown root:root /etc/x11vncpassword
</code></pre></div></div>

<p><strong>Replace “thepassword” with your chosen password.</strong></p>

<h2 id="alternative-method">Alternative Method</h2>

<p>The issue with the above method is that if you user does not reboot their client after logging off, then x11vnc does not restart.  An alternative, remove the above symlink from <code class="language-plaintext highlighter-rouge">/etc/rc2.d/S99x11vnc</code> and instead use an ldm start up script by adding the following two scripts:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># /opt/ltsp/i386/usr/share/ldm/rc.d/I99-x11vnc
# LDM Script to start x11vnc

XAUTH=`find /var/run/ldm-xauth* -type f`
start-stop-daemon --start --oknodo --pidfile /var/run/x11vnc.pid --background --nicelevel 15 --make-pidfile --exec /usr/bin/x11vnc -- -display :7 -loop -passwdfile /etc/x11vncpassword -nossl -logfile /var/log/x11vnc -auth $XAUTH
</code></pre></div></div>

<p>The “I” in I99-x11vnc denotes that this will be run after X and before LDM, which is perfect for VNC.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># /opt/ltsp/i386/usr/share/ldm/rc.d/X99-x11vnc
# LDM Script to stop x11vnc

start-stop-daemon --stop --oknodo --pidfile /var/run/x11vnc.pid
</code></pre></div></div>

<p>The “X” denotes that this script will be run upon logout, so this is closing down the x11vnc server, ready to restart with LDM.</p>

<p>This method will still not cope with X being terminated with ctrl+alt+backspace, in which scenario you can ssh onto the client and run <code class="language-plaintext highlighter-rouge">/etc/init.d/x11vnc condrestart</code> - you could also add this in as a local app to be accessible from the server desktop.</p>

<h2 id="references">References</h2>

<ul>
  <li>https://wiki.edubuntu.org/InstallX11VncOnLtspClients</li>
</ul>


       ]]>
      </description>
    </item>
    
    <item>
      <title>Dynamic Dns and Remote ssh and VNC</title>
      <link>https://chrisjrob.com/2011/04/05/dynamic-dns-and-remote-ssh-and-vnc/</link>
      <pubDate>Tue, 05 Apr 2011 00:00:00 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2011/04/05/dynamic-dns-and-remote-ssh-and-vnc</guid>
      <description>
       <![CDATA[
         
         <p>I want to be able to support my father’s PC remotely via SSH and VNC.
Some people recommend teamviewer, but I prefer the flexibility and
security of ssh, and the fact that this approach is fully open source.</p>

<h2 id="step-1-sign-up-for-dynamic-dns">Step 1: Sign up for Dynamic DNS</h2>

<!--more-->

<p>The first problem is that most people’s Internet service do not have a
static IP address. In practice it is fairly static on modern broadband
services, but, if you do not want to be fiddling about trying to find
out what the current IP address is, then you need a dynamic DNS
service.</p>

<p>Dynamic DNS gives you an unchanging address which is automatically
mapped to the current IP address, whatever that might be. So for example
you might have <code class="language-plaintext highlighter-rouge">daddy.dyndns.xyz</code> as your address. To make this work,
you need to have a client machine on the network, that will keep
updating daddy.dyndns.xyz with the latest IP address. Some home routers
have this functionality built in.</p>

<p>I did some research and determined that the very popular
<a href="http://dyndns.com">http://dyndns.com</a> service is reliable, and so I went ahead and signed
up a new account for my father, and set-up a hostname for his router’s
WAN address.</p>

<h2 id="step-2-configure-client">Step 2: Configure Client</h2>

<p>If you’re lucky your router will support dynamic DNS. My father’s did,
so I just logged onto the router and entered the dyndns account
information, and it just worked perfectly.</p>

<p>If your router does not support dynamic DNS, all is not lost, simply
install ddclient on a computer on the network (presumably, but not
necessarily, the one that you want to be supporting):</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo apt-get install ddclient`
</code></pre></div></div>

<p>Configuration of ddclient is simple, the ncurses configuration process
takes you step-by-step through the necessary steps.</p>

<h2 id="step-3-configure-port-forwarding">Step 3: Configure port forwarding</h2>

<p>The next problem is that your router has a firewall that is designed
explicitly to stop people getting into your network. We need to punch a
small hole in that firewall. Needless to say this does have security
implications, so we need to be careful.</p>

<p>So we need to open a port on the router and forward it to the machine
that we wish to support. This machine does need to have a static IP
address.</p>

<p>Log onto your router via its web management page. The main difficulty
here is in finding the port forwarding option, when it is probably
called something user friendly like Game Sharing or some other
perversely unhelpful name. If you can’t find it, then you’re best of
Googling for “port forwarding routername” where routername is the make
and model of your router. Or just read the manual, if by some miracle
you have one to hand.</p>

<p>But which port to forward? Your router will probably make it easy to
forward the standard ssh port - port 22 - the problem is that everyone
knows that is the ssh port and you may experience a high number of
attacks on that port. In theory you should be safe enough with secure
passwords, but personally I would not choose to forward the standard ssh
port, but would instead add a custom service “ssh_obscure” on a
different TCP port number and forward that to port 22 on PC that you
wish to support:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Name: ssh_obscure
Protocol: TCP
Source port: 2121 (or whatever you choose)
Destination IP: (enter the client PC's IP)
Destination Port: 22
</code></pre></div></div>

<p>If it won’t let you specify a Destination Port, then it will forward to
the same custom port on the PC. This will then require a change in the
configuration of sshd on the PC, which I will explain in the next step.</p>

<h2 id="step-4-install-openssh-server">Step 4: Install openssh-server</h2>

<p>On the client PC, i.e. the PC you will be supporting, install
openssh-server and its dependencies:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo apt-get install openssh-server
</code></pre></div></div>

<p>If you didn’t bother with the ssh_obscure suggestion above, then you
are simply forwarding from port 22 on the router to port 22 on the
client and no further configuration of openssh is required.</p>

<p>If you did set-up the ssh_obscure, but forwarding to port 22 on the
client, then again no further configuration is required.</p>

<p>If you set up ssh_obscure, but were unable to set a Destination Port,
then you are forwarding the same port to the client, so you will need to
change the relevant setting in <code class="language-plaintext highlighter-rouge">/etc/ssh/sshd_config</code>. E.g. <code class="language-plaintext highlighter-rouge">Port 2121</code>.
Then reload the ssh configuration with:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo /etc/init.d/ssh force-reload
</code></pre></div></div>

<h2 id="step-5-install-fail2ban">Step 5: Install Fail2ban</h2>

<p>As stated above, we have reduced the security of your network by taking
these steps and we are now going to attempt to rectify this somewhat by
installing fail2ban.</p>

<p>Some argue that this is unnecessary, if you have set a custom port for
ssh and maintain secure passwords, but I see no reason for relying on
security by obscurity. The main benefit of using a custom ssh port is to
prevent the attempts in the first place, but <strong>hiding your front door is
no substitute for locking it</strong>.</p>

<p>Fail2ban will monitor your <code class="language-plaintext highlighter-rouge">/var/log/auth.log</code> and block any hosts that
have repeatedly failed to login correctly, by blocking them in iptables
(the standard Linux firewall).</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo apt-get install fail2ban
</code></pre></div></div>

<p>Next you should create a new file <code class="language-plaintext highlighter-rouge">/etc/fail2ban/jail.local</code>, with the
following contents:\</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 600
</code></pre></div></div>

<p>Strictly speaking the above is already configured in
<code class="language-plaintext highlighter-rouge">/etc/fail2ban/jail.conf</code>, but I think it makes sense to take ownership
of those settings by redefining them in jail.local. If you have set a
custom ssh port, then set it in jail.local as above, replacing 
<code class="language-plaintext highlighter-rouge">port = ssh</code> with <code class="language-plaintext highlighter-rouge">port = 2121</code> or whatever. I have reduced maxretry to 3 from
the default of 6, as I found it was giving nearer to 18 attempts, thanks
to the peculiarities of the auth.log file.</p>

<p>Finally reload these new settings in fail2ban:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo /etc/init.d/fail2ban force-reload
</code></pre></div></div>

<p>In order to test fail2ban, try and log into the client from another
machine on the same network. You will need attempt to log in with the
wrong password a number of times. This may not be exactly 3 times, but
if you get to 9 attempts and it still has not blocked you, then there is
problem.</p>

<p>fail2ban will only block you for 10 minutes, after 3 failed login
attempts (you can change these settings as above).</p>

<h2 id="step-6-testing-ssh">Step 6: Testing SSH</h2>

<p>At this stage you should be able to log in remotely to your client PC.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ ssh -p 2121 username@daddy.dyndns.xyz
</code></pre></div></div>

<p>Obviously change 2121 for your custom port, or leave out <code class="language-plaintext highlighter-rouge">-p 2121</code> if
you are using the standard ssh port 22.</p>

<h2 id="step-7-installing-vnc">Step 7: Installing VNC</h2>

<p>Having ssh access is wonderful, but not much help when your Dad asks you
where his OpenOffice toolbar has gone; so we need to add VNC on the PC
you wish to support:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo apt-get install x11vnc
</code></pre></div></div>

<p>And on the PC from which you will be providing support you need to
install vnc-viewer, or use your preferred vncviewer:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo apt-get install xvnc4viewer
</code></pre></div></div>

<h2 id="step-8-testing-vnc">Step 8: Testing VNC</h2>

<p>Now, you <em>could</em> have set up x11vnc to be running permanently with a
password, and then you could set your router to port forward a custom
VNC port to the client PC. This approach does significantly degrade your
security and is in any case unnecessary. Instead we can just run it when
we need it by using ssh, by typing this command <strong>from the PC from which
you will be providing support</strong> and changing as appropriate:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ ssh -p 2121 -t -L 5900:localhost:5900 username@daddy.dyndns.xyz 'x11vnc -noxdamage -localhost -display :0'
</code></pre></div></div>

<p>This will connect by ssh to the client machine, run x11vnc bound only to
localhost (so no-one else can connect to it) and build a tunnel between
the remote VNC port to your local VNC port.</p>

<p>One caveat is that the username needs to be the currently logged in
user, otherwise x11vnc will refuse to start.</p>

<p>And finally on the PC from which you are providing support we just run:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>vncviewer localhost:0
</code></pre></div></div>

<p>And you should now be looking at your father’s (or whoever’s) PC.</p>

<p>Whilst this does all sound pretty involved, all but this final step is
only required once, then a quick ssh command and vncviewer and you are
connected.</p>


       ]]>
      </description>
    </item>
    
    <item>
      <title>LTSP | Install iTalc on Debian Lenny</title>
      <link>https://chrisjrob.com/2009/04/24/ltsp-install-italc-on-debian-lenny/</link>
      <pubDate>Fri, 24 Apr 2009 13:35:12 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2009/04/24/ltsp-install-italc-on-debian-lenny</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/italc_icon.png" align="right" alt="Featured Image">
         
         <h2 id="warning">Warning</h2>

<p>After completing this installation, the clients received an error on login about port 5900 already in use.  Upgrading italc-client (by temporarily adding the sid repository to <code class="language-plaintext highlighter-rouge">/etc/apt/source.list</code> in the chroot and re-installing italc-client) fixed this problem.</p>

<p>However, I was unable to get an acceptable performance from italc for shadowing, and ended up install x11vnc.  See <a href="/2013/03/19/ltsp-install-x11vnc-on-ltsp5/">Install x11vnc on LTSP5</a> for more information.</p>

<!--more-->

<h2 id="install-italc-client-in-chroot">Install italc-client in chroot</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo chroot /opt/ltsp/i386
# mount -t proc /proc /proc
# mount -t sysfs sys /sys
# apt-get install italc-client
# umount sys
# umount /proc
# exit
</code></pre></div></div>

<p><strong>If you are using ubuntu rather than debian, or have switched to nbd instead of nfs, remember to do an ltsp-update-client after leaving the chroot.</strong></p>

<h2 id="install-italc-master-on-server">Install italc-master on server</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo apt-get install italc-master
</code></pre></div></div>

<h2 id="generate-key-pairs">Generate Key Pairs</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo ica -role teacher -createkeypair
</code></pre></div></div>

<p><strong>I tried in vain to stipulate -role admin - could not get the keys to work.</strong></p>

<h2 id="set-permissions">Set Permissions</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo addgroup italc
$ sudo addgroup &lt;userid&gt; italc
$ sudo chgrp -R italc /etc/italc/keys
$ sudo chmod -R 640 /etc/italc/keys/private/
$ sudo chmod -R ug+X /etc/italc/keys/private/
</code></pre></div></div>

<h2 id="transfer-keys-to-client">Transfer keys to client</h2>

<p><strong>This assumes a standard /opt/ltsp/i386 chroot, change path to suit your installation.</strong></p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo mkdir /opt/ltsp/i386/etc/italc/keys
$ sudo cp -r /etc/italc/keys/public /opt/ltsp/i386/etc/italc/keys/
</code></pre></div></div>

<h2 id="create-client-start-script">Create client start script</h2>

<p>Enter the chroot:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo chroot /opt/ltsp/i386
</code></pre></div></div>

<p>And create the following script:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/sh</span>
<span class="c"># /usr/share/ldm/rc.d/S20-ica-launcher</span>
/usr/bin/ica &amp;
<span class="nb">true</span>
</code></pre></div></div>

<h2 id="test">Test</h2>

<ul>
  <li>Reboot client</li>
  <li>Log into client</li>
  <li>Open a terminal on the server and run /usr/bin/ica -noshm</li>
  <li>Run italc</li>
</ul>

<h2 id="references">References</h2>

<ul>
  <li>https://help.ubuntu.com/community/UbuntuLTSP/iTalc</li>
  <li>http://indianalinux.blogspot.com/2007/02/howto-install-italc-from-source-on.html</li>
  <li>http://wiki.ubuntu-fi.org/LTSP5_iTalc (Finnish)</li>
  <li>http://www.mail-archive.com/debian-edu@lists.debian.org/msg15477.html</li>
</ul>

       ]]>
      </description>
    </item>
    
    <item>
      <title>The Green Icons are breeding</title>
      <link>https://chrisjrob.com/2008/07/15/the-green-icons-are-breeding/</link>
      <pubDate>Tue, 15 Jul 2008 00:00:00 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2008/07/15/the-green-icons-are-breeding</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/italc_icon.png" align="right" alt="Featured Image">
         
         <p>Following the <a href="/2009/04/24/ltsp-install-italc-on-debian-etch/">installation of Italc on our LTSP Server</a>, users reported that they had several green icons in their system tray.  This transpired to be the KDE session manager, which automatically restores all applications running at time of logging-off.  I have updated my Install Italc instructions to include excluding ica from KDE session manager.</p>

<!--more-->

<p>In trying to kill off the multiple ica processes, I found that <code class="language-plaintext highlighter-rouge">ps</code> can do more than just <code class="language-plaintext highlighter-rouge">ps aux</code>.  I found that <code class="language-plaintext highlighter-rouge">ps -fHu username</code> would provide a tree-view of the specified user, which is much neater than piping ps through grep.</p>

<p>And then our <code class="language-plaintext highlighter-rouge">/tmp</code> filesystem filled up, and I just simply could not work out why.  Until, at least, I managed to trash our virtualised Windows Server 2003 (running under Qemu), by inadvertently disabling its network card and thus triggering the server monitoring - which automatically killed and restarted it; 600mb freed up in a second.</p>

       ]]>
      </description>
    </item>
    
    <item>
      <title>LTSP | The Continuing Saga of LTSP Screen Shadowing</title>
      <link>https://chrisjrob.com/2008/07/14/the-continuing-saga-of-ltsp-screen-shadowing/</link>
      <pubDate>Mon, 14 Jul 2008 00:00:00 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2008/07/14/the-continuing-saga-of-ltsp-screen-shadowing</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/italc.jpg" align="right" alt="Featured Image">
         
         <p>This turned out to be a complete nightmare, and took several days to resolve.  I never did manage to get x11vnc working on the client, nor did I manage to get italc (which I think also uses x11vnc) working on the client.  In the end I settled for installing italc-client on the server, so that the client runs when users log onto the server, allocating each user a unique port, and putting a little green italc icon in their system tray.</p>

<!--more-->

<p>This required upgrading qt4 from lenny (hardly ideal) and still works like a pig.  Well viewing is fine, but the remote control is unusably slow.</p>

<p>I found it impossible to manage the list of users in italc; which changes according to the whims of DHCP.  I ended up writing a script to use the output of “who” to populate the <code class="language-plaintext highlighter-rouge">globalconfig.xml</code> file in <code class="language-plaintext highlighter-rouge">/home/username/.italc</code>; if I have time I will add the script to my install italc instructions.</p>


       ]]>
      </description>
    </item>
    
    <item>
      <title>LTSP | Screen Shadowing</title>
      <link>https://chrisjrob.com/2008/07/10/screen-shadowing/</link>
      <pubDate>Thu, 10 Jul 2008 00:00:00 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2008/07/10/screen-shadowing</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/ltsp_logo.png" align="right" alt="Featured Image">
         
         <p>Something that we have become used to having under Citrix is the ability to shadow users, and I have been missing this since our forays into LTSP.  I know it is possible, and I have been attempting to use the KDE built-in Krfb Desktop Sharing module.  The problem with this has been that, all users being on the same hardware, it’s difficult to know to which screen number to connect.  I guess there probably is a way, but when I used trial and error to find the right display, the performance was less than impressive.</p>

<!--more-->

<p>So I decided to follow the masses and install x11vnc on the client, but suffice don’t have it working yet!</p>

<p>You may recall my recent installation of Edubuntu at home.  Well I was surprised to find that the Thin Client Manager, AKA the Student Control Panel, missing.  I Googled without joy, and ended up finding that thin-client-manager-gnome needed to be installed via Synaptic.  I reported this at #edubuntu and ogra informed that they have replaced this with <a href="http://italc.sourceforge.net/">iTalc</a>.  I therefore removed thin-client-manager-gnome, but again I could not find any reference to iTalc in the menus.  Again I Googled fruitlessly and again the solution was as simple as installing italc-master (the client was already installed).  And it worked, straight off including screen shadowing.</p>

<p>Now all I need to do is to work out <a href="/2009/04/24/ltsp-install-italc-on-debian-etch/">how to install iTalc on Etch</a>!  Perhaps not.  At least not just yet.</p>


       ]]>
      </description>
    </item>
    
  </channel> 
</rss>
