Github user mebelousov commented on the issue: https://github.com/apache/zeppelin/pull/2716 @woowahan-jaehoon, I kill all zeppelin processes on restart. I found out that there is a long hierarchy of commands. The command `ps -e -o pid,ppid,cmd | grep -E 'ZeppelinServer|interpreter' | grep -v grep` gives such result: pid | ppid | cmd ----- | ------ | ------- 14538 | 1 | /usr/lib/jvm/java/bin/java -Dfile.encoding=UTF-8 -Xms1g -Xmx4096m -XX:MaxPermSize=2048m -Dlog4j.configuration=file:///opt/zeppelin/conf/log4j.properties -Dzeppelin.log.file=/opt/zeppelin/logs/zeppelin-zeppelin-vm-zeppelin/opt/zeppelin/zeppelin-zengine/target/lib/*:/opt/zeppelin/zeppelin-interpreter/target/lib/*:/opt/zeppelin/*::/opt/zeppelin/conf:/opt/zeppelin/zeppelin-interpreter/target/classes:/opt/zeppelin/zeppelin-org.apache.zeppelin.server.ZeppelinServer 14707 | 14538 | /bin/bash /opt/zeppelin/bin/interpreter.sh -d /opt/zeppelin/interpreter/python -c 10.11.12.13 -p 46777 -r : -l /opt/zeppelin/local-repo/2D5JR3UV1 -g python 14717 | 14707 | /bin/bash /opt/zeppelin/bin/interpreter.sh -d /opt/zeppelin/interpreter/python -c 10.11.12.13 -p 46777 -r : -l /opt/zeppelin/local-repo/2D5JR3UV1 -g python 14718 | 14717 | /usr/lib/jvm/java/bin/java -Dfile.encoding=UTF-8 -Dlog4j.configuration=file:///opt/zeppelin/conf/log4j.properties -Dzeppelin.log.file=/opt/zeppelin/logs/zeppelin-interpreter-python-zeppelin-vm-zeppelin01t.tcsbank.ru.log -r/python/*:/opt/zeppelin/zeppelin-interpreter/target/lib/*::/opt/zeppelin/zeppelin-interpreter/target/classes:/opt/zeppelin/zeppelin-interpreter/target/test-classes:/opt/zeppelin/zeppelin-zengine/target/test-classes o6777 : That is, ZeppelinServer processes was 14538, it generated new process 14707, 14707 -> 14717, and python interpreter was 14718. I believe this hierarchy is the reason of undeleted pid files. I will try to find the origin of this hierarchy. Now I'm testing on RHEL6.8, the same behaviour is on CentOS6.9.
---