systemdがスクリプト名の前に0000:00:14.0を追加して、$ 0を破損しています

WinEunuuchs2Unix

/lib/systemd/system-sleepコマンドラインから完全に機能するスクリプトがあります

$ ll /lib/systemd/system-sleep/smartplug

-rwxr-xr-x 1 root root 713 Feb  7 04:55 /lib/systemd/system-sleep/smartplug*

$ sudo /lib/systemd/system-sleep/smartplug pre Suspend

/lib/systemd/system-sleep/smartplug: Going to Suspend...
/lib/systemd/system-sleep/smartplug: Status of: 192.168.0.15 is: OFF

$ sudo /lib/systemd/system-sleep/smartplug post Suspend

/lib/systemd/system-sleep/smartplug: Waking up from Suspend...

ただし、systemdサスペンド中にスクリプトを呼び出すと、スクリプトの名前が「汚染」され、呼び出されたスクリプトからnullが返されます。

$ journalctl -b-0 | grep smartplug

Feb 07 05:47:30 alien systemd-sleep[32243]: /lib/systemd/system-sleep/smartplug: Going to suspend...
Feb 07 05:47:30 alien systemd-sleep[32243]: 0000:00:14.0/lib/systemd/system-sleep/smartplug: Status of: 192.168.0.15 is:
Feb 07 16:36:10 alien systemd-sleep[32243]: /lib/systemd/system-sleep/smartplug: Waking up from suspend...

systemd 言うべきです:

Feb 07 05:47:30 alien systemd-sleep[32243]: /lib/systemd/system-sleep/smartplug: Status of: 192.168.0.15 is: OFF

しかし、それは言っています:

Feb 07 05:47:30 alien systemd-sleep[32243]: 0000:00:14.0/lib/systemd/system-sleep/smartplug: Status of: 192.168.0.15 is:

私はこれまでこの奇妙な行動を見たことがありません。スクリプトの内容は次のとおりです。

#!/bin/bash

# NAME: smartplug
# PATH: /lib/systemd/system-sleep
# CALL: Called from SystemD automatically
# DESC: When suspending turn off Kasa smartplugs.
# NOTE: Copy hs100.sh and myip.sh from user directory to /usr/bin.

# DATE: Feb 6 2020.

TMPLIST=/tmp/smartplug-list
PlugArr=( "192.168.0.15" )

case $1/$2 in
  pre/*)
    echo "$0: Going to $2..."
    echo -n '' > "$TMPLIST"

    status=$(hs100.sh -i "${PlugArr[0]}" check | cut -f2)
    echo "$0: Status of: ${PlugArr[0]} is: $status"
    if [[ "$status" == ON ]] ; then
        hs100.sh -i "${PlugArr[0]}" off
        echo "${PlugArr[0]}" >> "$TMPLIST"
    fi
        ;;
  post/*)
    echo "$0: Waking up from $2..."
    rm $TMPLIST
        ;;
esac

コメントに返信する

から得られる結果 lspci -vt

$ lspci -vt
-[0000:00]-+-00.0  Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers
           +-01.0-[01]--+-00.0  NVIDIA Corporation GM204M [GeForce GTX 970M]
           |            \-00.1  NVIDIA Corporation GM204 High Definition Audio Controller
           +-02.0  Intel Corporation HD Graphics 530
           +-04.0  Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem
           +-14.0  Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller

から得られる結果 journalctl -b-0 | grep smartplug -A5

これにより、PCIバスの切断が問題のあるメッセージの原因であったことが確認されます

--
Feb 07 22:40:15 alien systemd-sleep[14761]: /lib/systemd/system-sleep/smartplug: Going to suspend...
Feb 07 22:40:15 alien systemd-sleep[14761]: /lib/systemd/system-sleep/custom-xhci_hcd: Going to suspend...
Feb 07 22:40:15 alien systemd-sleep[14761]: Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory
Feb 07 22:40:15 alien systemd-sleep[14762]: /lib/systemd/system-sleep/wpasupplicant failed with error code 255.
Feb 07 22:40:15 alien systemd-sleep[14762]: /lib/systemd/system-sleep/r8169-reset failed with error code 1.
Feb 07 22:40:15 alien kernel: xhci_hcd 0000:00:14.0: remove, state 4
--
Feb 07 22:40:15 alien systemd-sleep[14761]: 0000:00:14.0/lib/systemd/system-sleep/smartplug: Status of: 192.168.0.15 is:
Feb 07 22:40:15 alien kernel: usb 1-9: USB disconnect, device number 9
Feb 07 22:40:15 alien acpid[1320]: input device has been disconnected, fd 22
Feb 07 22:40:15 alien kernel: xhci_hcd 0000:00:14.0: USB bus 1 deregistered
Feb 07 22:40:15 alien kernel: xhci_hcd 0000:39:00.0: remove, state 4
Feb 07 22:40:15 alien kernel: usb usb4: USB disconnect, device number 1
--

xhci_hcd 0000:00:14.0: USB bus 1 deregisteredそれらの行は、custom-xhci_hcdすべてのUSBデバイスを切断する(バインド解除/電源オフ)ことを目的としたスクリプトであることに注意してくださいsmartplugKasa SmartplugをオフにするにはWiFiが必要なためスクリプトが失敗していました。

ラップトップが一時停止しているときにSmartplugがまだテレビのライトをオフにしていないので、私はまだ森から出ていません。これは、Network ManagerがWiFiをすぐに停止するためだと思いますが、さらに調査が必要です。

無効にした後custom-xhci_hcd(数年前に書かれましたが、おそらくカーネルで4.14.170もう必要ありませんjournalctlこれは

--
Feb 08 09:14:44 alien systemd-sleep[3032]: /lib/systemd/system-sleep/smartplug: Going to suspend...
Feb 08 09:14:44 alien systemd-sleep[3032]: Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory
Feb 08 09:14:44 alien systemd-sleep[3033]: /lib/systemd/system-sleep/wpasupplicant failed with error code 255.
Feb 08 09:14:44 alien eyesome[3127]: Wakeup: Creating /tmp/eyesome-is-suspending
Feb 08 09:14:44 alien systemd-sleep[3032]: /lib/systemd/system-sleep/smartplug: Status of: 192.168.0.15 is:
Feb 08 09:14:44 alien systemd-sleep[3033]: /lib/systemd/system-sleep/display-auto-brightness failed with error code 1.
Feb 08 09:14:45 alien systemd-sleep[3033]: /lib/systemd/system-sleep/lag-suspend.sh failed with error code 1.
Feb 08 09:14:45 alien systemd-sleep[3033]: /lib/systemd/system-sleep/r8169-reset failed with error code 1.
Feb 08 09:14:45 alien systemd-sleep[3033]: /lib/systemd/system-sleep/iwlwifi-reset failed with error code 1.
Feb 08 09:14:45 alien systemd-sleep[3032]: Suspending system...
--
Feb 08 09:14:57 alien systemd-sleep[3032]: /lib/systemd/system-sleep/smartplug: Waking up from suspend...
Feb 08 09:14:57 alien systemd-sleep[3032]: Failed to connect to non-global ctrl_ifname: (nil)  error: No such file or directory
Feb 08 09:14:57 alien kernel: PM: suspend exit
Feb 08 09:14:57 alien eyesome[3346]: Wakeup: Called from suspend.
Feb 08 09:14:57 alien systemd-sleep[3032]: /dev/sda:
Feb 08 09:14:57 alien systemd-sleep[3032]:  setting Advanced Power Management level to 0xfe (254)

のスクリプトからの他のエラーコード/lib/systemd/system-sleepは、スクリプトが実行可能ではないが、歴史的な理由で保持されているためです。

rick@alien:/lib/systemd/system-sleep$ ll
total 68
drwxr-xr-x 2 root root 4096 Feb  7 04:55 ./
drwxr-xr-x 8 root root 4096 Feb  6 16:53 ../
-rw-r--r-- 1 root root 1079 Oct 28  2018 custom-xhci_hcd
-rw-r--r-- 1 root root 1079 Oct 28  2018 custom-xhci_hcd~
-rw-r--r-- 1 root root 1539 Jun 10  2018 display-auto-brightness
-rwxr-xr-x 1 root root   92 Mar 17  2016 hdparm*
-rw-r--r-- 1 root root  716 Apr 22  2017 iwlwifi-reset
-rw-r--r-- 1 root root  572 Oct 28  2018 lag-suspend.sh
-rw-r--r-- 1 root root  522 Oct 21  2018 lag-suspend.sh~
-rw-r--r-- 1 root root 2820 Aug  5  2018 r8169-reset
-rwxr-xr-x 1 root root  713 Feb  7 04:55 smartplug*
-rwxr-xr-x 1 root root  661 Feb  7 04:53 smartplug~*
-rwxr-xr-x 1 root root 1114 Oct 28  2018 sound*
-rwxr-xr-x 1 root root 1171 Aug  5  2018 sound~*
-rwxr-xr-x 1 root root  317 Aug 29 05:44 systemd-wake-eyesome*
-rwxr-xr-x 1 root root  219 Apr 29  2019 unattended-upgrades*
-rwxr-xr-x 1 root root  182 Oct 26  2015 wpasupplicant*

から得られる結果 cat -v

コメントリクエストによると:

$ sudo /lib/systemd/system-sleep/smartplug pre Suspend |& cat -v
/lib/systemd/system-sleep/smartplug: Going to Suspend...
/lib/systemd/system-sleep/smartplug: Status of: 192.168.0.15 is: ON

への配管|& cat -vは出力を変更しないことに注意してください

WinEunuuchs2Unix

Systemdは最初にNetworkManagerを停止します

サスペンド中にUSBバスを切断しないことでエラーメッセージを修正した後でも、サスペンド中にWiFiコマンドを送信することはできません。

Network Managerは、一時停止/休止状態およびシャットダウン中に停止する最初のサービスです。その間にWiFi無線信号をデバイスに送信する場合は、これ読む必要があります

スクリプトをSystemdの「ハック」から移動します

問題を解決するために、スクリプトを作成しました。

/etc/NetworkManager/dispatcher.d/pre-down.d/smartplug_off

スクリプトは実行可能(chmod a+x scriptname)とマークする必要があり、私にとっては次のものが含まれています。

#!/bin/bash

# NAME: smartplug_off
# PATH: /etc/NetworkManager/dispatcher.d/pre-down.d
# DESC: Turn off smartplug light power for TV light
# DATE: March 7, 2020.

# CALL: Called by Network Manager before going down. Network manager in turn
#       is called by systemd during suspend/hibernate/shutdown

# NOTE: myisp.sh and hs100.sh must be installed for hs100 tp-link power plug.
#       https://developer.gnome.org/NetworkManager/stable/NetworkManager.html

PlugName="192.168.0.15"

status=$(hs100.sh -i "$PlugName" check | cut -f2)
if [ $status == "OFF" ] ; then
    : # Nothing to do already off
elif [ $status == "ON" ] ; then
    hs100.sh -i "$PlugName" off
else
    echo Error hs100.sh not responding check connection and IP "$PlugName".
fi

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ITextSharpスタンパーがPDFを破損しています

分類Dev

itextsharpは画像を追加した後に破損したPDFを作成しています

分類Dev

Pdfjsタイプスクリプト。PDFを読み込んでいますが破損しています

分類Dev

"エラー:System.Data.OleDb.OleDbException(0x80004005):次のクエリが破損しています: ''

分類Dev

スタック破損バグの説明を探しています

分類Dev

登録フォントが.TTFファイルを破損しています

分類Dev

CCleanerがChromeの設定ファイルを破損しています

分類Dev

XSL-FOの背景画像が生成されたpdfを破損しています

分類Dev

ストーリーボードが破損しています

分類Dev

MBNプロファイルがHRESULT0x800704B6で破損しています

分類Dev

ASP.NET MVCFileResultがファイルを破損しています

分類Dev

Excel VBASaveas関数がファイルを破損しています

分類Dev

デスクトップショートカットを作成した後、Chromiumが破損しています

分類Dev

デスクトップショートカットを作成した後、Chromiumが破損しています

分類Dev

Oracleからblobを抽出しています-ファイルが破損しています

分類Dev

アセンブラプロシージャを使用してメモリが破損しています

分類Dev

ソケットを介して送信した後、jarファイルが破損しています

分類Dev

newまたはdeleteを使用していないのに、なぜヒープが破損するのですか?

分類Dev

URL.createObjectURLを使用して再構築した後、PDFが破損しています

分類Dev

MemoryStreamは、iTextSharpを使用してファイルを破損しているように見えます

分類Dev

Windowsは、ThumbdriveをLinuxに接続した後、破損していると考えています

分類Dev

アレイが削除または破損しています

分類Dev

匿名の右辺値への参照が破損しています

分類Dev

Windowsブートが破損しています

分類Dev

HDD上のファイルが破損しています

分類Dev

zipファイル内のPDFが破損しています

分類Dev

EvilDicom の画像が破損しています

分類Dev

Valgrindはmallocメモリの破損を言います、mallocを使用していません

分類Dev

破損した動的HDDをバックアップしようとしています

Related 関連記事

  1. 1

    ITextSharpスタンパーがPDFを破損しています

  2. 2

    itextsharpは画像を追加した後に破損したPDFを作成しています

  3. 3

    Pdfjsタイプスクリプト。PDFを読み込んでいますが破損しています

  4. 4

    "エラー:System.Data.OleDb.OleDbException(0x80004005):次のクエリが破損しています: ''

  5. 5

    スタック破損バグの説明を探しています

  6. 6

    登録フォントが.TTFファイルを破損しています

  7. 7

    CCleanerがChromeの設定ファイルを破損しています

  8. 8

    XSL-FOの背景画像が生成されたpdfを破損しています

  9. 9

    ストーリーボードが破損しています

  10. 10

    MBNプロファイルがHRESULT0x800704B6で破損しています

  11. 11

    ASP.NET MVCFileResultがファイルを破損しています

  12. 12

    Excel VBASaveas関数がファイルを破損しています

  13. 13

    デスクトップショートカットを作成した後、Chromiumが破損しています

  14. 14

    デスクトップショートカットを作成した後、Chromiumが破損しています

  15. 15

    Oracleからblobを抽出しています-ファイルが破損しています

  16. 16

    アセンブラプロシージャを使用してメモリが破損しています

  17. 17

    ソケットを介して送信した後、jarファイルが破損しています

  18. 18

    newまたはdeleteを使用していないのに、なぜヒープが破損するのですか?

  19. 19

    URL.createObjectURLを使用して再構築した後、PDFが破損しています

  20. 20

    MemoryStreamは、iTextSharpを使用してファイルを破損しているように見えます

  21. 21

    Windowsは、ThumbdriveをLinuxに接続した後、破損していると考えています

  22. 22

    アレイが削除または破損しています

  23. 23

    匿名の右辺値への参照が破損しています

  24. 24

    Windowsブートが破損しています

  25. 25

    HDD上のファイルが破損しています

  26. 26

    zipファイル内のPDFが破損しています

  27. 27

    EvilDicom の画像が破損しています

  28. 28

    Valgrindはmallocメモリの破損を言います、mallocを使用していません

  29. 29

    破損した動的HDDをバックアップしようとしています

ホットタグ

アーカイブ