Comportamento semelhante que tive uma vez, quando na inicialização uma variável de ambiente do sistema JAVA_HOME diferente foi definida.
A linha suspeita é esta: 
IssopareceumjavadiferentedaquelequevocêmencionoucomJAVA_HOME=/usr/lib/jvm/jdk1.8.0_111.
Eutentariaalgoassim:
- verifiqueseujavapadrãocom
update-alternatives--configjava - verifiquesealgumlugar
JAVA_PATHestádefinido
Alémdisso,vocêmencionouquecopioucatalina.shpara/etc/init.d.Issotambémpodeserumproblema.Emnossosambientes(naverdade,tomcat7,maseuachoqueébemparecido)nóstemosumscriptsimplesem/etc/init.dquedefineJAVA_HOMEumstartstartup.sh.Parecealgoassim:
JAVA_HOME=/opt/jdk1.8.0_92/
export JAVA_HOME
JRE_HOME=/opt/jdk1.8.0_92/jre
export JRE_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/opt/tomcat
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh -force
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh -force
sleep 3
sh $CATALINA_HOME/bin/startup.sh
;;
Talvez você deva considerar iniciar o startup.sh com seu script /etc/init.d .
Espero que você tenha dado algumas informações para investigar seu problema ainda mais.

