9055b030825932774ee3d46ceda848488fad9903
[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 while os.getppid() != 1:
13     time.sleep(0.5)
14
15 if len(sys.argv) > 2:
16     os.spawnv(os.P_WAIT, sys.argv[2], sys.argv[2:])
17
18 to_launch = sys.argv[1]
19 if sys.platform == 'darwin':
20     os.execv('/usr/bin/open', ['/usr/bin/open', to_launch])
21 else:
22     os.execv(to_launch, [to_launch])