程序員應該如何優雅地關閉電腦?


用重大決策按鈕關機。


有時候我出去玩,不想回實驗室關機,怎麼辦呢?剛好最近在學習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鍵,喚出一個菜單,然後滑鼠點一下確定:

心想他這個方法還挺好,於是我把關機換成了 「Power + Enter」。單手即可完成。可惜後來,mac系統某年升級到一個新版本後,Power鍵按起來沒用了。換成hold住Power鍵1.5秒,然後敲回車。稍顯麻煩。

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 600

ps:公司電腦很渣,IDE半天才關閉,只能這樣了


Linux/Unix

sudo init 0

sudo shutdown -h now

Windows

shutdown -s -t 0

OS X

同Linux

sudo shutdown -h now

還有還有,你跟你的mac說:

關機,不顯示確認對話框:

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 |