pid内容为各进程的进程号
通过ps -ef | grep a 查询a的pid,精确杀死某进程
[hadoop@hadoop000 sbin]$ cat hadoop-daemon.sh |grep pid
HADOOP_PID_DIR The pid files are stored. /tmp by default.( pid默认存储在/tmp目录)
pid=
H
A
D
O
O
P
P
I
D
D
I
R
/
h
a
d
o
o
p
−
HADOOP_PID_DIR/hadoop-
HADOOPPIDDIR/hadoop−HADOOP_IDENT_STRING-$command.pid
if [ -f $pid ]; then
if kill -0 cat $pid
> /dev/null 2>&1; then
echo $command running as process cat $pid
. Stop it first.
echo $! > $pid
if [ -f $pid ]; then
TARGET_PID=cat $pid
rm -f $pid
删除pid,进程不挂,服务正常
生产上:
pid 最好不要放到/tmp,若要放到/tmp目录,则需要修改自动清理机制。
/tmp目录默认:一个月清理一次临时文件
修改pid路径步骤:
1.先修改sbin目录下hadoop-daemon.sh文件
指定HADOOP_PID_DIR储存路径
2.再修改 yarn-daemon.sh 文件
指定YARN_PID_DIR储存路径
3.重新启动Hadoop:
会看的刚才指定的pid路径
hadoop-2.8.1]$ ll
total 164
drwxrwxr-x. 2 hadoop hadoop 4096 Jul 6 04:53 bin
drwxrwxr-x. 3 hadoop hadoop 4096 Jun 2 2017 etc
drwxrwxr-x. 2 hadoop hadoop 4096 Jun 2 2017 include
drwxrwxr-x. 3 hadoop hadoop 4096 Jun 2 2017 lib
drwxrwxr-x. 2 hadoop hadoop 4096 Jun 2 2017 libexec
-rw-rw-r–. 1 hadoop hadoop 99253 Jun 2 2017 LICENSE.txt
drwxr-xr-x. 3 hadoop hadoop 12288 Jul 7 21:13 logs
-rw-rw-r–. 1 hadoop hadoop 15915 Jun 2 2017 NOTICE.txt
drwxrwxr-x. 2 hadoop hadoop 4096 Jul 7 21:13 pid
-rw-r–r--. 1 hadoop hadoop 1366 Jun 2 2017 README.txt
drwxrwxr-x. 2 hadoop hadoop 4096 Jul 7 21:09 sbin
drwxrwxr-x. 4 hadoop hadoop 4096 Jun 2 2017 share
4.目录pid里面的内容:
hadoop-2.8.1]$ ll pid
total 20
-rw-rw-r–. 1 hadoop hadoop 5 Jul 7 21:12 hadoop-hadoop-datanode.pid
-rw-rw-r–. 1 hadoop hadoop 5 Jul 7 21:12 hadoop-hadoop-namenode.pid
-rw-rw-r–. 1 hadoop hadoop 5 Jul 7 21:13 hadoop-hadoop-secondarynamenode.pid
-rw-rw-r–. 1 hadoop hadoop 5 Jul 7 21:13 yarn-hadoop-nodemanager.pid
-rw-rw-r–. 1 hadoop hadoop 5 Jul 7 21:13 yarn-hadoop-resourcemanager.pid
修改成功