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

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

wip

  • 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
21if is_thin!=0:
22        displays=set()
23        for item in p.strip("\n").split("\n"):
24               
25                x=item.split(" ")
26                user=x[0]
27                if "(" not in x[-1] or ")" not in x[-1] or ":" not in x[-1] or "." not in x[-1]:
28                        continue
29                display=x[-1].lstrip("(").rstrip(")")
30               
31                if os.path.exists(thinclient_cron_file):
32                        if len(display.split(":")[0].split("."))<4:
33                                continue
34               
35                if display not in displays:
36                        displays.add(display)
37                else:
38                        continue
39               
40                cmd="su -c 'DISPLAY=%s /usr/sbin/shutdown-lliurex-dialog %s' %s &"%(display,wait_time,user)
41                os.system(cmd)
42
43
44if is_thin!=0 and not os.path.exists(thinclient_cron_file):
45        os.system("/sbin/shutdown -h +%s"%wait_time)
46
47if is_thin==0 and not os.path.exists(thinclient_cron_file):
48        time.sleep(60*wait_time)
49        os.system("n4d-client -r -m shutdown -c ShutdownerClient")
Note: See TracBrowser for help on using the repository browser.