[platform] ignore SIGHUP in restarter script (IDEA-162263)
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>
Tue, 18 Oct 2016 18:35:46 +0000 (20:35 +0200)
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>
Tue, 18 Oct 2016 18:35:46 +0000 (20:35 +0200)
When the IDE is launched in it's own terminal (File Manager | Run in Terminal), shutting it down kills the restarter script as well. Ignoring the signal allows the script to outlive a terminal and successfully restart the IDE.

bin/linux/restart.py

index 96397f82b9467ca923d4351082511060eeb4f83c..5633f1289aff027f71a116085eaf2d499b11fac0 100755 (executable)
@@ -3,12 +3,15 @@
 # Waits for the parent process to terminate, then executes specified commands.
 
 import os
+import signal
 import sys
 import time
 
 if len(sys.argv) < 3:
     raise Exception('usage: restart.py <pid> <path> [optional command]')
 
+signal.signal(signal.SIGHUP, signal.SIG_IGN)
+
 pid = int(sys.argv[1])
 while os.getppid() == pid:
     time.sleep(0.5)