Then I start it up again and I have to start syncing the blockchain from 0.
I'm also running bitmonerod on this machine, so maybe its too much for it to handle at the same time?
Killed
edit: After starting over, the daemon gets killed at the same point, just after the checkpoint for 540000.
That seems like out of memory (Linux "OOM killer"). You can try the pruning branch which uses somewhat less. You can also try adding a bit of swap on your system. If the shortfall isn't too large, swap will help without performance being too terrible. Installing the dphys-swapfile package on Ubuntu will manage swap automatically for you, not sure if there is a non-manual swap solution on other distros.