You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2017/07/11 16:41:06 UTC

incubator-atlas git commit: ATLAS-1733: updated atlas_stop.py script to work in Windows environment

Repository: incubator-atlas
Updated Branches:
  refs/heads/master 8fe110c3f -> ad398393f


ATLAS-1733: updated atlas_stop.py script to work in Windows environment

Signed-off-by: Madhan Neethiraj <ma...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/ad398393
Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/ad398393
Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/ad398393

Branch: refs/heads/master
Commit: ad398393f712fdbb689a33883182f65f8ef58ac7
Parents: 8fe110c
Author: Graham Wallis <gr...@uk.ibm.com>
Authored: Tue Jul 11 09:26:45 2017 -0700
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Tue Jul 11 09:26:45 2017 -0700

----------------------------------------------------------------------
 distro/src/bin/atlas_stop.py | 27 ++++++++++++++++++++++-----
 1 file changed, 22 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/ad398393/distro/src/bin/atlas_stop.py
----------------------------------------------------------------------
diff --git a/distro/src/bin/atlas_stop.py b/distro/src/bin/atlas_stop.py
index a25d25a..66edd90 100755
--- a/distro/src/bin/atlas_stop.py
+++ b/distro/src/bin/atlas_stop.py
@@ -15,8 +15,18 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
+
+# Signal handling is OS-specific because there is no SIGKILL on Windows.
+
 import os
-from signal import SIGTERM, SIGKILL
+
+if os.name == "nt":
+  # Attempting to import SIGKILL on Windows would cause script to fail.
+  from signal import SIGTERM
+else:
+  from signal import SIGTERM, SIGKILL
+
 import sys
 import traceback
 import time
@@ -63,15 +73,22 @@ def main():
     # stop hbase
     if mc.is_hbase_local(confdir):
         mc.run_hbase_action(mc.hbaseBinDir(atlas_home), "stop", None, None, True)
-		
+
     if mc.exist_pid(pid):
         #after 30 seconds kill it
         time.sleep(30)
         try:
-            sys.stderr.write("did not stop gracefully after 30 seconds seconds: killing with SIGKILL\n")
-            os.kill(pid, SIGKILL)
+
+            if os.name == "nt":
+              # If running on Windows then timeout termination uses SIGTERM instead of SIGKILL.
+              sys.stderr.write("did not stop gracefully after 30 seconds: killing process using SIGTERM\n")
+              os.kill(pid, SIGTERM)
+            else:
+              sys.stderr.write("did not stop gracefully after 30 seconds: killing process using SIGKILL\n")
+              os.kill(pid, SIGKILL)
+
         except:
-            pass			
+            pass
 
 if __name__ == '__main__':
     try: