程序員應該如何優雅地關閉電腦?
用重大決策按鈕關機。
有時候我出去玩,不想回實驗室關機,怎麼辦呢?剛好最近在學習python,能不能利用這個實現一下。可以利用微博提供的API實現python機器人登陸微博,發一條微博就相當於給電腦發一個指令,想法不錯,就是干。
經過一天的coding,終於被我實現了。。
只要我用手機發一條微博「實驗室誰幫我關一下電腦」,然後@一下師兄師姐們,關機就妥妥的了。
我真是太機智了。。。
=======================================================
今天翻看知乎,發現這個一年半前抖的機靈,抽了點時間,來把這個坑給填了。
現在我將用 python + email,實現「優雅」的關閉電腦。
- python:3.5.2 email:163郵箱 system:Win10
1、準備
- 安裝依賴包email
在python安裝目錄下/Scripts下執行 :
pip install email
- 設置163郵箱的SMTP服務(如圖)
2、說明
執行py程序後,程序將每隔10分鐘(時間可以自己設置)讀取一次郵箱最新郵件,解析獲得郵件主題,當主題為「關機」時,程序將關閉電腦,為「重啟」時,將重啟電腦。在長時間離開電腦時,可以將py程序跑起來,如果需要關機或重啟,可以向郵箱發一封郵件即可
3、代碼
# -*- coding:utf-8 -*-
import os
import time
import poplib
import email
from email.header import decode_header
#========================================
# 讀取Email,獲取Email主題
#========================================
def getEmailSubject():
read = poplib.POP3("pop.163.com")
read.user("xxx@163.com")# 163郵箱用戶名
read.pass_("xxx") # 163郵箱設置中的客戶端授權密碼
allEmails = read.stat() # 讀取郵件信息
topEmail = read.top(allEmails[0], 0) # 獲取最新的一封郵件
tmp = []
# 解碼郵件,存入tmp
for s in topEmail[1]:
try:
tmp.append(s.decode())
except:
try:
tmp.append(s.decode("gbk"))
except:
tmp.append(s.decode("big5"))
message = email.message_from_string("
".join(tmp))
# 獲取郵件主題
subject = decode_header(message["Subject"])
if subject[0][1]:
subjectDecode = subject[0][0].decode(subject[0][1])
else:
subjectDecode = subject[0][0]
return subjectDecode
#=========================================
# 檢查Email的主題
#=========================================
def checkEmailSubject():
while True:
subject = getEmailSubject()
print("check subject ...")
print("subject is " + subject)
if subject == "重啟":
os.system("shutdown -r -t 3")
break
if subject == "關機":
os.system("shutdown -s -t 3")
break
time.sleep(600) # 每10分鐘檢查一次
if __name__ == "__main__":
checkEmailSubject()
4、結束語
不知道算不算優雅,反正自打我工作半年來,一共就只關過3、4次電腦
剛開始買mac後,還是06年,那時只會左上角點一下蘋果圖標,然後選擇 「Shut down...」。當年買個mac可貴了,於是每次我都要關機,等到硬碟不轉了,才敢放回書包裡帶走。
後來心想應該學幾個牛逼的快捷鍵關機,於是查了半天,問了我當年的蘋果大神,他告訴我一個組合鍵:「Command–Option–Control–Power」。當時一邊覺得蘋果大神真牛逼,一邊覺得蘋果公司是不是腦殘,搞出這麼複雜的一套快捷鍵就是為了關一個機。鍵多倒不是問題,問題是4個鍵分布位置橫跨整個鍵盤。每次操作都要兩隻手協作,巨麻煩。特別是左手托著電腦的時候,另一隻手根本沒法關機。
在CMU學習了Linux命令課程,知道一個reboot,心想肯定也有關機的吧,於是搜了一下:sudo shutdown -s -t now
於是專門在 .bash_profile 裡面加了一個快速關機的 alias。 以後關機就在terminal 裡面敲一個shutdownnow(當然有用tab來自動補全)
再後來,看到一個老外傻傻地按power鍵,喚出一個菜單,然後滑鼠點一下確定:
2010入職公司,反正電腦不是我的,於是淪為只休眠不關機流。本子一合上就走人,永不關機! (除非程序崩潰,一般90%都是Flash crash)
直到有一次電腦碰到問題,ssh不上遠程主機,我試了各種方法解決不了。去到公司的 help desk (就是幫人處理各種電腦問題的。工程師一般不來,來的都是非技術崗位的計算機小白) 他先簡單地檢查了一下,打了個命令:uptime
然後說我好久沒有關機了,可能什麼daemon進程在後面掛起了,要我重啟一下。重啟之後問題竟然沒了,於是後來我就養成每2-3天重啟或者關機一次的習慣。當然,一直堅持用的快捷鍵還是
「按住Power鍵1.5秒,然後回車」。於是心想,有時候快捷鍵或者說是複雜度也是一種輪迴吧。之前的Windows很多操作巨複雜,Mac就精簡不少。而iPhone的操作系統更是:交互精簡,操作intuitive,讓人可以更加focus(集中注意力)在自己要完成的事情上。我想這就是機器變革的真諦:Less is more!
(可能年紀大了,最近答題有點啰嗦,要改進)
真正的程序員都不關電腦的好嗎。
小劉啊,你還在公司嗎? 啊,在女朋友那啊?那你去一趟公司吧,幫我關一下機。嗯?沒關係,打車,來回打車費我報銷。女朋友生氣?沒關係,你回去時到LV店裡隨便挑個包給她。嗯,對對,都給你報銷。去吧,好,謝謝啊。
別做夢了,其實是醬紫:
1小劉啊,你還在公司嗎? 在。幫我關機。2
小劉啊,你還在公司嗎?不在,回家了。
什麼?還沒到10點你就不加班了啊?滾回去加班,順路幫我關電腦。3
小劉啊,你還在公司嗎?都10點多了,我已經回家了。沒什麼啦,你去趟公司幫我關電腦吧。我女朋友在呢。你一個程序員哪來的女朋友?回公司幫我關電腦!那打車費…什麼打車費,你平時不是騎自行車的么?快去。小劉是程序員…
我喜歡德國boy式,但是沒那麼多錢
程序員哪有關電腦的啊。
每次開機要開幾十種工具,不夠麻煩的。原則上就是,只要公司不斷電,絕不自覺關電腦。win+l,然後關掉顯示器。
開通個微信公眾號,設定一個語音命令,伺服器映射回自己電腦的一個服務。
想關機了,開微信對著手機說「愛卿退下吧,朕要就寢了。」(呼嚕聲夠大也可以用呼嚕聲做指令)【僅適用於win8.1或者win10】Win+R打開運行,在裡面輸入:slidetoshutdown 然後回車。
Win10的話要這麼做:
大力敲擊Ctrl+Alt+Del再迅速重擊回車,一定不要按多次否則會以為你死機了。動作要流暢但誇張,一定不能用Win+L因為沒逼格。完成後就會顯示你酷酷的鎖屏界面了,別人如果亂動你鍵盤滑鼠則會看到你耍帥的頭像。
什麼你說關機?這年代還要關機嗎?反正鎖屏後很快就會自動關monitor,接下來也會很快sleep。關機什麼的太弱了。以下兩條命令,任選一個:sudo init 0 // 立即關機sudo shutdown -h now // 立即關機
1. win鍵+d
2. alt+f4
3. 回車平時關機的時候倒是很少, 雖然偶有重啟. 但最近用 win 10, 經常出問題後重啟卡住, 於是關機就是長按電源鍵了... 然後聽到 "啵啾" 的一聲, 優雅關機成就達成~
這無聊的問題 我幫你問
程序員如何優雅的按A字母?程序員如何優雅的按B字母?程序員如何優雅的按C字母?...程序員如何優雅的按Z字母?以及小寫和各種符號外加滑鼠左右鍵滾輪滾輪左右以及側鍵以及如何優雅的看顯示器的X1Y1像素...X1920Y1080...等等
你們能提點有意義或者有意思的問題嗎?難道不應該是直接合上蓋子,電腦就ready to go了?
我很好奇,這麼多程序員,關機都這麼粗魯?記得大學一次上實驗課,老師在力行樓講課,然後說自己辦公室電腦忘記關了,然後拿出手機,把辦公室電腦給關了,看了下手機,是個簡單的軟體,是通過綁定固定的ip來關機的,後來我自己也下載了一個軟體,這個軟體有手機端,電腦端,然後只要電腦上那個軟體是開的隨便在哪,只有手機有信號,打開軟體,直接關機就可以,還可以手機操控電腦,於是,我用手機登錄了我電腦的英雄聯盟,不過,手機網速要快哦如果在同一個網內,獵豹免費wifi都能實現遙控關機的好嗎
;=====================================================
;** 快捷鍵 Win+F12關閉顯示器
;=====================================================
#F12::
run, "E:
irLauncherNirSoft
ircmd.exe" cmdwait 1000 monitor off
return
shutdown -s -t 600ps:公司電腦很渣,IDE半天才關閉,只能這樣了
Linux/Unix
sudo init 0
sudo shutdown -h now
shutdown -s -t 0
sudo shutdown -h now
關機,不顯示確認對話框:
osascript -e "tell app "System Events" to shut down"
關機,顯示確認對話框:
osascript -e "tell app "loginwindow" to ?event aevtrsdn?"
推薦閱讀:
※如何製作 Windows 10 微軟拼音格式的詞庫?
※有哪些新生代沒見過或者無法理解的 Windows 95/98 時代的事情?
※windows本身集成很多軟體,只有瀏覽器被告壟斷,而其他軟體沒有。為什麼?比如開始菜單,計算器,播放器等。
※為什麼手機內存不如電腦的內存?
※c++怎麼在動態鏈接庫里使用string類?
TAG:程序員 | MicrosoftWindows | 編程 | 關機 | 如何優雅地X |