Shutdown
是否可以創建一個終端命令別名來自動化 CTRL + ALT + SYSRQ + REISUO 按鍵?
無論出於何種原因,我的外部硬碟驅動器在啟動時經常遇到 initramfs 問題,導致我執行
$ fsck /dev/sdb2 -y
以使一切恢復正常。不過,我注意到的一件事是,使用標題命令關閉或重新啟動系統大大減少了此錯誤的發生。
有沒有辦法創建一個腳本或終端別名來“完成”按下這些鍵的動作(每個字母之間有一點延遲)?所以與其用手指和腳趾玩數字型操,我可以簡單地打字
$ reisuo
,它會為我完成動作?
#!/bin/sh for c in r s u o; do echo $c > /proc/sysrq-trigger sleep 1 done
(雖然沒有模擬CTRL鍵,反正也沒效果)
編輯:刪除
e i
,因為它們會殺死程序,包括目前的 shell 和腳本的其餘部分不會繼續。你最好還是使用kill
或slay
無論如何。而當你在做的時候SysRQ s u o
,r
是無關緊要的。
對於像我這樣可能對 shell 腳本不熟悉的人,以下是我如何讓@Radovan 的腳本啟動並執行的分步說明:
$ cd /usr/local/bin
這是保存腳本的地方。在此目錄中保存腳本不需要添加新路徑。sudo vim rsuo.sh
要與此目錄正確互動,需要使用 sudo 權限創建腳本- 在上面添加@Radovan 的腳本,感謝@JdeBP 的好建議,現在省略了 SIGTERM 和 SIGKILL 命令,因此腳本能夠執行完成
- 保存文件後,需要擴展其權限,以便非 root 使用者可以訪問它,使用以下命令:
$ sudo chmod u+x rsuo.sh
和/或$ sudo chown <user_name> rsuo.sh
- 現在文件已經設置好了,要為命令創建別名,打開 .bashrc (
$ vim ~/.bashrc
) 並添加alias rsuo="cd /usr/local/bin && sudo rsuo.sh"
- 保存後,關閉並重新啟動終端,當您輸入 時
$ rsuo
,它會提示您輸入 sudo 密碼,然後執行腳本。- 我對 rsub 命令重複了上述步驟,這樣我也可以重新啟動系統。
- 根據自己的喜好食用雙份奧利奧;)