[ https://issues.apache.org/jira/browse/YARN-76?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13710816#comment-13710816 ]
Xuan Gong commented on YARN-76: ------------------------------- {code} public static String[] getSignalKillCommand(int code, String pid) { return Shell.WINDOWS ? new String[] { Shell.WINUTILS, "task", "kill", pid } : new String[] { "kill", "-" + code, isSetsidAvailable ? "-" + pid : pid }; } {code} If setSid is supported, the command kill -15/-9 -{$pid} will be executed. This will kill the whole process group. If setSid is not supported, the command kill -15/-9 $pid will be executed. > killApplication doesn't fully kill application master on Mac OS > --------------------------------------------------------------- > > Key: YARN-76 > URL: https://issues.apache.org/jira/browse/YARN-76 > Project: Hadoop YARN > Issue Type: Bug > Environment: Failed on MacOS. OK on Linux > Reporter: Bo Wang > > When client sends a ClientRMProtocol#killApplication to RM, the corresponding > AM is supposed to be killed. However, on Mac OS, the AM is still alive (w/o > any interruption). > I figured out part of the reason after some debugging. NM starts a AM with > command like "/bin/bash -c /path/to/java SampleAM". This command is executed > in a process (say with PID 0001), which starts another Java process (say with > PID 0002). When NM kills the AM, it send SIGTERM and then SIGKILL to the bash > process (PID 0001). In Linux, the death of the bash process (PID 0001) will > trigger the kill of the Java process (PID 0002). However, in Mac OS, only the > bash process is killed. The Java process is in the wild since then. > Note: on Mac OS, DefaultContainerExecutor is used rather than > LinuxContainerExecutor. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira