Checking the status of the Cassandra service on CentOS 7 shows this:
The same is shown after the Cassandra process is killed or dies by itself. Notice this part: Active: active (exited)
Starting Cassandra through systemctl start cassandra will not work, because systemd still thinks the service is running.
According to the systemd documentation regarding compatibility with SysV this is expected behavior. Systemd doesn't know the PID of the Cassandra process and thus can't check if the service is running or not.
It is suggested to add the following to the SysV script header comment:
After adding this manually systemd correctly detected the state of the Cassandra process on our machines.
Update: /var/run/cassandra is missing after reboot
Since CentOS 7 /var/run is a symlink to /run which is tmpfs-mounted. This makes /var/run/cassandra go away after a reboot and the PID file is never created again. (With the above change systemd even fails because it can't find the PID file.)
I suggest adding this to make sure the directory for the PID file exists: