source: lliurex-shutdowner/trunk/fuentes/lliurex-shutdowner-common.install/usr/sbin/shutdown-lliurex @ 5541

Last change on this file since 5541 was 5541, checked in by hectorgh, 3 years ago

fixing shutdown-lliurex to better support thin clients

  • Property svn:executable set to *
File size: 1.2 KB
Line 
1#!/usr/bin/env python
2
3import subprocess
4import os
5import time
6
7thinclient_cron_file="/etc/cron.d/lliurex-shutdowner-thinclients"
8wait_time=1
9
10p=subprocess.Popen(["who"],shell=True,stdout=subprocess.PIPE).communicate()[0]
11is_server=os.system("lliurex-version -t server")
12is_thin=os.system("lliurex-version -x thin")
13
14if is_server==0:
15        if not os.path.exists(thinclient_cron_file):
16                wait_time=2
17
18t=time.localtime()
19shutdown_date="%s:%s"%(t.tm_hour,t.tm_min+wait_time)
20
21
22if is_thin!=0:
23        displays=set()
24        for item in p.strip("\n").split("\n"):
25               
26                x=item.split(" ")
27                user=x[0]
28                if "(" not in x[-1] or ")" not in x[-1] or ":" not in x[-1] or "." not in x[-1]:
29                        continue
30                display=x[-1].lstrip("(").rstrip(")")
31               
32                if os.path.exists(thinclient_cron_file):
33                        if len(display.split(":")[0].split("."))<4:
34                                continue
35               
36                if display not in displays:
37                        displays.add(display)
38                else:
39                        continue
40               
41                cmd="su -c 'DISPLAY=%s /usr/sbin/shutdown-lliurex-dialog %s' %s &"%(display,wait_time,user)
42                os.system(cmd)
43
44
45if is_thin!=0 and not os.path.exists(thinclient_cron_file):
46        os.system("/sbin/shutdown -h +%s"%wait_time)
47
48if is_thin==0 and not os.path.exists(thinclient_cron_file):
49        time.sleep(60*wait_time)
50        os.system("n4d-client -r -m shutdown -c ShutdownerClient")
Note: See TracBrowser for help on using the repository browser.