Abhijit,
There are ways you can run the server as non-root.
1- If based on your config file you want to run the server as "shiny" user, you need to login as that user and then run "opt/shiny-server/bin/shiny-server". This is not using Upstart.
2- If you want to use Upstart, then you need to make changes to the Upstart file (/etc/init/shiny-server.conf) file. Change the "exec" command to something like this for example:
exec su -s /bin/sh -c 'exec "$0" "$@"' shiny -- shiny-server --pidfile=/var/run/shiny/shiny-server.pid >> /var/log/shiny-server.log 2>&1
For this example, it is assuming a pid file is being generated in /var/run/shiny directory. So you need to create this directory and give it write permission to "shiny" user. And then you can use the Upstart commands to stop and start your server (sudo stop shiny-server OR sudo start shiny-server).
And remember when server process is not run as root, you might run into permissions issues with some other files/directories. Refer to the Admin Guide for more info on this.
Best,
Fereshteh