Try running it manually with debug enabled. This will cause it to run in the foreground and print any error messages to standard error, while also increasing the verbosity.
I believe this will be the correct command line for PostgreSQL 9.3 on Ubuntu, but it might require some very slight tweaking (note: line is split for readability; you can recombine it to a single line (without the backslash) if you want):
/usr/lib/postgresql/9.3/bin/postgres -d 3 -D /var/lib/postgresql/9.3/main \ -c config_file=/etc/postgresql/9.3/main/postgresql.conf
The beginning is the location of the postgres binary, then we enable debug and set it to level 3 (you can adjust this up or down to increase or decrease verbosity). Next we specify the data directory and the config file to start with. These should be the defaults for Ubuntu Server 12.04, I think.
Hopefully, that'll give you enough information to determine where the problem is.
su - postgres; /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/dataand see what it gives you. You may need to change user name and paths depending on your setup.-d 3to thepostgrescommand. This will enable more extensive debugging output written to the log. You can lower the debugging output by changing it to 1 or 2, or increase it by changing it to 4 or 5. Also, what is the output ofwhich pgsql?