[platform] fixes for Linux restarter
[idea/community.git] / bin / linux / restart.py
1 #!/usr/bin/env python
2
3 # Waits for the parent process to terminate, then executes specified commands.
4
5 import os
6 import sys
7 import time
8
9 if len(sys.argv) < 2:
10     raise Exception('At least one argument expected')
11
12 pid = os.getppid()
13 while os.getppid() == pid:
14     time.sleep(0.5)
15
16 if len(sys.argv) > 2:
17     os.spawnv(os.P_WAIT, sys.argv[2], sys.argv[2:])
18
19 to_launch = sys.argv[1]
20 if sys.platform == 'darwin':
21     os.execv('/usr/bin/open', ['/usr/bin/open', to_launch])
22 else:
23     os.execv(to_launch, [to_launch])