Index: head/devel/hadoop2/files/datanode.in =================================================================== --- head/devel/hadoop2/files/datanode.in (revision 379090) +++ head/devel/hadoop2/files/datanode.in (revision 379091) @@ -1,32 +1,41 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: datanode # REQUIRE: LOGIN # KEYWORD: shutdown # # datanode_enable (bool): Set to NO by default. # Set it to YES to enable datanode. . /etc/rc.subr export PATH=${PATH}:%%LOCALBASE%%/bin name=datanode rcvar=datanode_enable +pidfile=%%HADOOP_RUNDIR%%/hadoop-%%HDFS_USER%%-${name}.pid load_rc_config "${name}" : ${datanode_enable:=NO} : ${datanode_user:=%%HDFS_USER%%} command="%%PREFIX%%/sbin/hadoop-daemon.sh" command_args='--config %%ETCDIR%% start datanode' +start_postcmd="start_postcmd" stop_cmd=datanode_stop + +start_postcmd () { + rc_pid=$(check_pidfile ${pidfile} %%JAVA_HOME%%/bin/java) + if [ -n "$rc_pid" ]; then + protect -p $rc_pid + fi +} datanode_stop () { su -m ${datanode_user} -c "${command} --config %%ETCDIR%% stop datanode" } run_rc_command "$1" Index: head/devel/hadoop2/files/nodemanager.in =================================================================== --- head/devel/hadoop2/files/nodemanager.in (revision 379090) +++ head/devel/hadoop2/files/nodemanager.in (revision 379091) @@ -1,32 +1,41 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: nodemanager # REQUIRE: LOGIN # KEYWORD: shutdown # # nodemanager_enable (bool): Set to NO by default. # Set it to YES to enable resourcemanager. . /etc/rc.subr export PATH=${PATH}:%%LOCALBASE%%/bin name=nodemanager rcvar=nodemanager_enable +pidfile=%%HADOOP_RUNDIR%%/yarn-yarn-${name}.pid load_rc_config "${name}" : ${nodemanager_enable:=NO} : ${nodemanager_user:=%%MAPRED_USER%%} command="%%PREFIX%%/sbin/yarn-daemon.sh" command_args='--config %%ETCDIR%% start nodemanager' +start_postcmd="start_postcmd" stop_cmd=nodemanager_stop + +start_postcmd () { + rc_pid=$(check_pidfile ${pidfile} %%JAVA_HOME%%/bin/java) + if [ -n "$rc_pid" ]; then + protect -p $rc_pid + fi +} nodemanager_stop () { su -m ${nodemanager_user} -c "${command} --config %%ETCDIR%% stop nodemanager" } run_rc_command "$1"