This is a duplicate problem, but I don't believe that it's a duplicate question as none of the given answers for people suffering the same problem work for me.
rc.local does not run on startup. It is very simple and contains the following:
#!/bin/sh
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sleep 10
echo "this was written by rc.local" > /home/simon/start_text
exit 0
The "sleep 10" is there as it was given as a possible solution to the problem in another question.
The "#!/bin/sh" has had the "-e" removed as that was also a suggested solution.
/etc/rc.local is executable and is owned by root.
-rwxrwxrwx 1 root root 396 Jan 24 06:06 rc.local
Running startup scripts manually work fine, e.g. "/etc# ./rc.local" or ":/etc/init.d# ./rc.local start". Both of these will result in the test file (start_text) being written.
I'm running 12.04 in Virtualbox, I'm not sure if that should make any difference.
I can't think of what to check next. Ideas please.