Bash

systemctl 在 system-sleep 下沒有執行腳本

  • October 27, 2015

systemctl hybrid-sleep或任何類似的東西,根據手冊,應該執行在其中找到的所有腳本,/lib/systemd/system-sleep然後繼續它自己的執行。相反,它完全完全忽略了我放在那裡的每一個腳本:

gnome-terminal -e "touch Documents/qwert"
while [ 1 ] 
do
   echo hi
done

^ 這應該在創建文件後進入無限循環。我也嘗試過諸如此類的東西touch /home/u/Documents/qwert

我其實很納悶。這實際上可能是由於混合睡眠、休眠等都導致在完全執行之前崩潰,即我的筆記型電腦無法進入任何類型的省電模式,而是進入完全凍結狀態並顯示空白screen - 但是,它在此之前註銷並且僅在幾秒鐘後崩潰,所以我認為腳本應該可以正常執行;畢竟這些都應該在註銷之前執行。

gnome-terminal不會從那裡執行,因為它沒有可連接的 X 伺服器(它以 root 身份執行,而不是以您的登錄使用者身份執行)。gnome-terminal不需要,無論如何在這裡都過分了。touch /home/u/Documents/qwert不跑就跑gnome-terminal -e

還:

  1. 確保腳本是可執行的(使用 chmod +x 腳本名)。
  2. 添加#! /bin/sh或(#! /bin/bash如果您使用任何僅限 bash 的功能)作為腳本的第一行。

引用自:https://unix.stackexchange.com/questions/238799