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

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

trying to better support user display discovery

  • Property svn:executable set to *
File size: 1.6 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       
23        displays=set()
24       
25        for item in p.strip("\n").split("\n"):
26               
27                tmp_wait_time=wait_time
28                display=None           
29                x=item.split(" ")
30                user=x[0]
31                print x[0],x[-1]       
32                if "(" not in x[-1] or ")" not in x[-1] or ":" not in x[-1]:
33                        if is_server==0:
34                               
35                                if "." in x[-1] and len(x[-1].split("."))==4:
36                                        # let's try to guess displays
37                                        display=x[-1].lstrip("(").rstrip(")")+":7.0"
38                                else:
39                                        continue
40                        else:   
41                                continue
42                               
43                if not display:
44                        display=x[-1].lstrip("(").rstrip(")")
45               
46                if os.path.exists(thinclient_cron_file):
47                        if "." in display and len(display.split(":")[0].split("."))<4:
48                                continue
49               
50                if display not in displays and display!=None:
51                        displays.add(display)
52                else:
53                        continue
54               
55                if "." in display and len(display.split("."))>=4:
56                        tmp_wait_time=1
57               
58                command="su -c 'DISPLAY=%s /usr/sbin/shutdown-lliurex-dialog %s' %s &"%(display,tmp_wait_time,user)
59                os.system(command)
60
61
62if is_thin!=0 and not os.path.exists(thinclient_cron_file):
63        os.system("/sbin/shutdown -h +%s"%wait_time)
64
65if is_thin==0 and not os.path.exists(thinclient_cron_file):
66        time.sleep(60*wait_time)
67        os.system("n4d-client -r -m shutdown -c ShutdownerClient")
Note: See TracBrowser for help on using the repository browser.