LinHES Forums http://forums.linhes.org/ |
|
modify “idle.py” to check for samba user in LinHES 8.2/ 8.3 http://forums.linhes.org/viewtopic.php?f=24&t=24134 |
Page 1 of 1 |
Author: | lsteingr01 [ Wed Jan 28, 2015 5:43 pm ] |
Post subject: | modify “idle.py” to check for samba user in LinHES 8.2/ 8.3 |
2015-11-30 The new idle.py is now a part of the LinHES 8.3 installation and upgrade. (NO more any change in idle.py !!) After update the LinHES-system (8.3-15 -> 8.3-19) the new version is online. solution is in posting #4 THIS IS FOR INFORMATION ONLY Hi, I use my Mythbackend server as a Samba server to share my music and picture files for connected windows client PCs. On my windows machine I have an wake-on-lan batch file (WolCmd.exe) that can remotely start the Mythbackend server. Mythwelcome and the LinHES script “/usr/LH/bin/idle.py” without some modifications have no check for active windows client connection. I have basic experience in Linux shell scripting, but not in python programming language. But I found a solution to check for active samba connections. Requirement are LinHES-system 8.2-5 mythtv 0.27.4-3 and /usr/LH/bin/idle.py from Nov 20 17:27, 12947 bytes (md5sum 69ecfe682f1b61c2c4c95d890b9f523c) You can do the following steps: 1) Make a copy of the file /usr/LH/bin/idle.py 2) Cut and Replace the function “userlogins_check” 3) Save the change in a NEW file /usr/LH/bin/idle-samba.py 4) Test the script with an active samba share 5) Make a backup copy of the file /usr/LH/bin/mythwelcome-config.py 6) Modify and execute the file /usr/LH/bin/mythwelcome-config.py 7) Check in mythtv-setup the new setting of wake up This are the details: 1) Make a copy of the file /usr/LH/bin/idle.py Code: cp -a -v /usr/LH/bin/idle.py /usr/LH/bin/idle-samba.py ‘/usr/LH/bin/idle.py’ -> ‘/usr/LH/bin/idle-samba.py’ 2) Cut and Replace the function “userlogins_check” in the NEW file /usr/LH/bin/idle-samba.py Cut this lines 185-202 Code: def userlogins_check(cmdargs): if (cmdargs.logins): u=False msg(cmdargs," Checking for users logged in...") users=subprocess.check_output("who") names=([x.split() for x in users.splitlines()]) for i in names: if (i[0] == "mythtv" and i[4] == "(:0)"): msg(cmdargs," Ignoring %s %s" %(i[0],i[4])) else: msg(cmdargs," User logged in: %s %s" %(i[0],i[4])) u=True if u: return False else: return True else: return True Replace and insert this code (Please check that the end of line is LF only (not CR LF) ) Code: def userlogins_check(cmdargs): if (cmdargs.logins): u=False msg(cmdargs," Checking for users logged in...") users=subprocess.check_output("who") names=([x.split() for x in users.splitlines()]) for i in names: if (i[0] == "mythtv" and i[4] == "(:0)"): msg(cmdargs," Ignoring %s %s" %(i[0],i[4])) else: msg(cmdargs," User logged in: %s %s" %(i[0],i[4])) u=True msg(cmdargs," Checking for active samba users....") samba_status = subprocess.Popen(['sudo','smbstatus'], stdout=subprocess.PIPE) samba_conn = "Locked files:\n" in samba_status.stdout if ( samba_conn ): msg(cmdargs," System is busy -active samba users-") else: msg(cmdargs," System is idle -no active samba users-") if ( u or samba_conn ): msg(cmdargs," System is busy -active linux user (ssh) or samba users-") return False else: msg(cmdargs," System is idle -no active linux user (ssh) or samba users-") return True else: return True 3) Save the change in the NEW file /usr/LH/bin/idle-samba.py, file listing show: /usr/LH/bin/idle-samba.py 13547 bytes (md5sum eeb7778b2b0890497ee8c39e655cf57d) 4) Test the script with an active samba share Open a samba share on your windows machine and open a termial session (ALT X) as a user mythtv Code: $ /usr/LH/bin/idle-samba.py -d -l -r -g Checking system idle... Checking for users logged in... Checking for active samba users.... System is busy -active samba users- System is busy -active linux user (ssh) or samba users- System is busy. If you see any python error messages stop here at step 4 and fix this! 5) Make a backup copy of the file /usr/LH/bin/mythwelcome-config.py Code: cp -a -v /usr/LH/bin/mythwelcome-config.py /usr/LH/bin/mythwelcome-config.py.linhes8.2 ‘/usr/LH/bin/mythwelcome-config.py’ -> ‘/usr/LH/bin/mythwelcome-config.py.linhes8.2’ 6) Modify and execute the file /usr/LH/bin/mythwelcome-config.py in line 26 put a hashtag "#" and copy and modify this line in 27 Code: #mythdb.settings.NULL.preSDWUCheckCommand = u'/usr/LH/bin/idle.py -s -d -l -r' mythdb.settings.NULL.preSDWUCheckCommand = u'/usr/LH/bin/idle-samba.py -s -d -l -r -g' Execute this file /usr/LH/bin/mythwelcome-config.py to update the Mythtv DB 7) Check in mythtv-setup the new setting of wake up (/usr/LH/bin/idle-samba.py -s -d -l -r -g) End of modification Regard Lutz Optional: 1) If you like to have more information from the idle-samba.py script you can activate the file logging in line 5 and put your own logging.log(logging.INFO) code. Code: import logging logging.basicConfig( filename="/var/log/mythtv/idle-samba.log", filemode = "a", level = logging.DEBUG, format = "%(asctime)s %(levelname)s: %(message)s", datefmt = "%d.%m.%Y %H:%M:%S") logging.log(logging.INFO, "--------------------------------------------------------------") logging.log(logging.INFO, "Starting idle.py") You can generate a log file in /var/log/mythtv/ like Code: 28.01.2015 18:35:03 INFO: -------------------------------------------------------------- 28.01.2015 18:35:03 INFO: Starting idle.py 28.01.2015 18:35:03 INFO: User logged in: root 28.01.2015 18:35:03 INFO: System is busy -active samba users- 28.01.2015 18:35:03 INFO: System is busy -active linux user (ssh) or samba users- 28.01.2015 18:35:03 INFO: All checks status:System is busy 2) If you have problems with the message "mythshutdown is locked" you can execute Code: mythshutdown -u
mythshutdown -c OK to shutdown |
Author: | lsteingr01 [ Tue Oct 06, 2015 7:54 am ] |
Post subject: | Hint how to modify “idle.py” to check for samba user in 8.3 |
Hi 2015-10-06 This script works with the 8.3 version - the idle.py script have no changes in md5sum. This are my LinHES versions Code: cat /etc/LinHES-release LinHES R8.3 (Lorne Malvo) uname -a Linux sbx1 3.18.14-1-ARCH #1 SMP PREEMPT Wed May 27 17:12:27 UTC 2015 x86_64 GNU/Linux cat /var/log/pacman.log |grep -i linhes [2015-01-19 18:04] [PACMAN] upgraded LinHES-system (8.2-3 -> 8.2-5) [2015-01-19 18:04] [PACMAN] upgraded linhes-theme (8.2-7 -> 8.2-9) [2015-03-12 14:03] [PACMAN] upgraded LinHES-config (8.2-17 -> 8.3-12) [2015-03-12 14:03] [PACMAN] upgraded LinHES-system (8.2-5 -> 8.3-9) [2015-03-12 14:04] [PACMAN] upgraded linhes-theme (8.2-9 -> 8.3-1) [2015-04-10 14:51] [PACMAN] upgraded LinHES-config (8.3-12 -> 8.3-13) [2015-04-10 14:51] [PACMAN] upgraded LinHES-system (8.3-9 -> 8.3-11) [2015-07-10 16:17] [PACMAN] upgraded LinHES-config (8.3-13 -> 8.3-15) [2015-10-05 15:07] [PACMAN] upgraded LinHES-config (8.3-15 -> 8.3-21) [2015-10-05 15:07] [PACMAN] upgraded LinHES-system (8.3-11 -> 8.3-14) After the last update I change only the /usr/LH/bin/mythwelcome-config.py again and start mythwelcome-config.py script Code: #mythdb.settings.NULL.preSDWUCheckCommand = u'/usr/LH/bin/idle.py -s -d -l -r' mythdb.settings.NULL.preSDWUCheckCommand = u'/usr/LH/bin/idle-samba.py -s -d -l -r -g' Regards Lutz |
Author: | brfransen [ Tue Oct 06, 2015 12:20 pm ] |
Post subject: | Re: modify “idle.py” to check for samba user in LinHES 8.2/ |
Good idea. I just added a -f (or --sambafiles) option to idle.py that checks for Samba files in use and includes it in system busy. http://cgit.linhes.org/linhes_pkgbuild/ ... c21dea8078 |
Author: | lsteingr01 [ Mon Nov 30, 2015 11:39 am ] |
Post subject: | Re: modify “idle.py” to check for samba user in LinHES 8.2/ |
2015-11-30 Thanks for updating the idle.py, that is now a part of the LinHES 8.3 installation and upgrade. (NO more any change in idle.py !!) After update the LinHES-system (8.3-15 -> 8.3-19) the new version is online. Code: usage: idle.py [-h] [-d] [-g] [-f] [-l] [-r] [-s] [-t TIME] [-u] optional arguments: -h, --help show this help message and exit -d, --daily Include daily wake & about to start wake in system busy. (default: daily wake & about to start wake is system idle) -g, --logins Include user logins in system busy. Ignores mythtv (:0) in system busy. -f, --sambafiles Include Samba files in use in system busy. -l, --lock Include mythshutdown lock in system busy. (default: mythshutdown lock is system idle) -r, --runningfe Include running mythfrontends in system busy. (default: running mythfrontends are system idle) -s, --silent Run without printing output. Recommended for use in cron jobs or scripts. -t TIME, --time TIME Minutes of idle time needed to return idle for upcoming recordings and daily wake. -u, --usage Print usage instructions. If you check for user logins and Samba files in use, use this settings of the /usr/LH/bin/idle.py Code: -s -d -l -r -g -f Change the mythwelcome-config.py Code: /usr/LH/bin/mythwelcome-config.py
#mythdb.settings.NULL.preSDWUCheckCommand = u'/usr/LH/bin/idle.py -s -d -l -r' mythdb.settings.NULL.preSDWUCheckCommand = u'/usr/LH/bin/idle.py -s -d -l -r -g -f' |
Page 1 of 1 | All times are UTC - 6 hours |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |