If you use --daemonize then calibre-server will persist after you think you've killed it.

Excellent test for running server -- try to contact it.
Dunno what an upstart service should look like, but a working systemd unit should look like this:
Code:
[eschwartz@arch ~]$ cat ~/.config/systemd/user/calibre-server.service
[Unit]
Description=Main calibre server
After=network.target
[Service]
Type=forking
PIDFile=/%t/calibre.pid
ExecStart=/usr/bin/calibre-server \
--daemonize \
--port=8080 \
--pidfile=/%t/calibre.pid \
--with-library /media/PORTABLEAPP/PortableApps/calibrePortable/Data/Amazon \
--restriction contentserve
[Install]
WantedBy=default.target