QL.túra

Kulturális smörgåsbord Esterházytól Wass Albertig, a gumicsizmától az iPad-ig, a Teletabiktól Sexpírig, a makrofágtól a mikrokontrollerig, miazmás...

Címkék

2000 (20) 2001 (6) 2002 (16) 2003 (164) 2004 (61) 2005 (40) 2006 (31) 2007 (28) 2008 (33) 2009 (175) 2010 (188) 2011 (201) 2012 (86) 2013 (40) 2014 (36) 2015 (26) 2016 (10) adáshiba (91) android (1) animáció (93) cygwin (3) film (410) gezarol (13) hájtek (159) hangoskönyv (32) ipad (17) klip (12) könyv (191) linux (29) színház (169) vers (17) windows (37) zene (111) Címkefelhő

+jegyzések

Most ...

... múlok .osan

bmi_tiny.png


... hallgatom
Szabó Magda: Régimódi történet
https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSqTmZEqlCRFgojyt52Q2n_qiMTyVlt-zJu-DpbNKVY6OQbBh4u


... olvasom
Alexander Steele (szerk.): Kezdő írók kézikönyve


... (Kik ezek? Kik ezek az embek? Kik ezek?)
profile for TrueY on Stack Exchange, a network of free, community-driven Q&A sites
free counters

[Hájtek] Windows ellenőrzött leállítása

2015.03.03. 11:00 | TrueY | Szólj hozzá!

Címkék: windows 2014

http://upload.wikimedia.org/wikipedia/en/5/5e/Windows_XP_Shutdown.pngA munkahelyi Windows-omat minden hazamenetel előtt hibernálom. Nem szeretem bekapcsolva hagyni, mert feleslegesen minek fogyassza az áramot cirka 16 órán keresztül (Ez kb 5. kWh villamos energia munka naponta. A maradék szabad napokon pedig 24 órás feleslegesség. Mind összesen köbö (220 nap/év * 5 kWh/nap + 140 nap/év * 8 kWh/nap) *50 Ft/kWh = 111000 Ft/év + 777 kg CO2 kibocsátás. Hogy az egyebekről ne beszéljek). A lelövés után viszont sokáig tart kézzel elindítgatni az összes programot.

Tehát én hibernálni szeretem a gépet. Viszont bizonyos programok ilyen esetben kiidősödnek (l. timeout-ra futnak) és pl. az ssh bonthatja a kapcsolatot. Ez akkor probléma, ha mondjuk egy vim nyitva volt az adott konzolon és az swp file-ok elkezdenek feltorlódni. Erre a problematikára kerestem egy viszonylag fájdalommentes megoldást.

A konkrét problémám tehát, hogy Cygwin-es urxvt alatt szoktam ssh kapcsolatokat nyitogatni, majd ezekkel dolgozgatni. Viszont az urxvt képes több tab-ot is nyitni, így nem mindig jut eszembe az összes nyitott ssh-t lelövögetni. Tehát jó lenne, ha hibernálás/leállítás előtt megcsinálná nekem egy szkript.

Első kérdésként az merül fel, hogyan lehet parancssorból hibernálni. Erre a shutdown parancs helpjéből könnyen választ kaphatunk:

C:\>shutdown /?
Usage: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]
    [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]
...
    /h         Hibernate the local computer.
               Can be used with the /f option.

Tehát mielőtt ezt kiadnám, meg kellene nézni, hogy az ssh.exe fut-e. Erre a tasklist.exe parancsot lehet használni:

C:\> tasklist /NH /Fi "IMAGENAME eq ssh.exe"

Ha talál ilyet, akkor ez a kimenete:
ssh.exe              6344 Console             1      9 276 K

Ha nem fut, akkor pedig:
INFO: No tasks are running which match the specified criteria.

Sajnos ha nem talál megfelelő programot, akkor nem tér vissza 1-es exit kóddal. Hát igen, ez még mindig DOS. Tehát trükközni kell! Írtam hát egy halt.bat DOS szkriptet, ami megnézi, hogy fut-e ssh.exe: Ha fut, akkor felkéri a felhasználót a kézi intervencióra. Ha nem fut, akkor leállítja a gépet. Így nézünk most ki:

@echo off
SETLOCAL EnableExtensions
set EXE=ssh.exe
:LOOP
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND
echo %EXE% not running...
goto FIN

:FOUND
echo %EXE% is still running!
pause
goto LOOP

:FIN
shutdown %*

Használat: halt /h - hibernálás, halt /s - leállítás. A /t-vel tudnánk várakozást is beiktatni a lelövés előtt. De valamilyen általam nem értelmezhető okból a hibernációra nem vonatkozik. Szépen végiggondolt megoldás!

Ha szükségünk úgy hozza, hogy egy bizonyos dll használatát kell górcső alá vennünk, akkor a

tasklist /NH /FI "MDOULES eq cygwin1.dll"

parancsot használhatjuk. De van lehetőség egy mintával való egyezés figyelésére is:

tasklist /NH /M cyg*

Most, hogy már megvan a batch szkript el kellene indítani. Én a Start menü-höz való hozzáadást választottam az asztal újabb ikonokkal való telepakolása helyett, mert az asztalom ritkán látszik ki a rengeteg program alól, a taskbar-ba való kiszögezést meg feleslegesnek tartom, mert olyan sűrűn viszont nem használom. Tehát

Start gomb -> Recently run program: bármelyiket kiválasztani -> jobb klikk -> "Pin to Start Menu" -> jobb klikk -> Properties ->
{General} Hibernate
{Shortcut}
Target: C:\cygwin\halt.bat /h
[Change Icon...] %SystemRoot%\System32\shell32.dll -> Itt a kék gombot választottam. Sajnos sárga nincs.

A shutdown-ra pedig ugyanezt megismételve, hogy a {General} fülön a nevet Shutdown-ra változtattam, a {Shortcut} fülön pedig a "Target:" lett "C:\cygwin\halt.bat /s" és piros gomb az ikonja.

A batch írása közben egy furcsaságba futottam bele. Eleinte a Total Commander gomb sorába akartam betenni a batch file meghívását. De valami miatt a dll modulok keresése piszok lassú lett (de az exe-ket hipp-hopp megtalálta). 20-25 másodpercet is eltökörészett, amíg kilistázott 3 alkalmazást. Tehát 64 bites Windows-on 32 bites TC-t futtatva (ez volt alapban fent) kiadtam a "tasklist /NH /M cygwin1.dll" parancsot (akár a batch file-ra kattintással, vagy a Command prompt elindításával TC menüből, vagy a saját command prompt-jába való beírással) és 25 s után kaptam választ. Ezt be is jelentettem a TC honlapján (>itt<) és jött is egy ötlet, de a megoldásra nekem kellett rájönni. A C:\Windows könyvtár alatt kerestem cmd.exe file-okat. Négy is jött a System32 (64 bites), SysWOW64 és kettő a winsxs könyvtár alatt. Mind a néggyel megpróbáltam és végül találtam egyet, amin gyorsan jött a válasz:

SET CMD=c:\Windows\winsxs\amd64_microsoft-windows-commandprompt_31bf3856ad364e35_6.1.7601.17514_none_e932cc2c30fc13b0\cmd.exe
%CMD% /C tasklist /NH /FI "MODULES eq cygwin1.dll"


Álljunk le minden nap!

A bejegyzés trackback címe:

https://qltura.blog.hu/api/trackback/id/tr526691765

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása