pkillがrofiで機能しないのはなぜですか?

筆記者

rofi1つのキーバインドでアプリケーションランチャーを切り替えたいシェルスクリプトを作成しました

#!/bin/bash

rofi -dpi 1 -modi drun -show drun -show-icons

そしてそれをいくつかの鍵に結び付けました。これは機能しますが、トグルして実行しないように切り替えるには、次のことを試しました。

pkill -0 rofi || rofi -dpi 1 -modi drun -show drun -show-icons

それでは、rofiは最初から始められません。私はテストしましたpkill emacs || emacs、そしてそれはemacsを切り替えます。誰かがrofi用に修正する方法を教えてもらえますか?そして、引数「-0」は何をしますか?マニュアルに見つかりませんでした。

私はこれを見つけました

私はこれに対して頭を殴るのにかなりの時間を費やしました、そしてそれから私はrofiがそのpidを保存していることに気づきました。configを介してpidファイルにアクセスできます。これにより、必要なすべての情報にアクセスできます。しかし、エキサイティングなことに取り掛かる前に、安全性について言及することが重要です。暴走したスクリプトを作成する場合に備えて、プロセス数を(何らかの方法で)制限することをお勧めします。経験から言えば、別のttyに切り替えてすべてを強制終了するのに十分なメモリを解放できるようになるまで、30分かかる可能性があります。

if [[ 10 -lt $(pgrep -c -f "$0") ]]; then
    pkill -f rofi
    pkill -f "$0"
    exit 1
fi

これがまさに私が望んでいることなのか、それともそのコードが何をするのかはわかりません。

クリスダウン

tl; dr:そのままの状態で、コードには「pkillが強制終了rofiできるプロセスが見つからない場合は、実行するrofi」と表示されます。すでに実行されている場合は実際に強制終了するのではなく、実行されているかどうかを大まかに確認し、実行されていない場合は開始します。本当に毎回殺したい場合は、を削除してください-0


-0シグナル0でkillsします。これは、呼び出し元のプロセスにプロセスを強制終了する権限があり、プロセスが存在するかどうかを確認するだけです。それは実際には何も殺しません。

差出人man 3 kill

sigがゼロ(ヌル信号)の場合、エラーチェックは実行されますが、実際には信号は送信されません。null信号は、pidの有効性を確認するために使用できます。

この方法で信号を渡すことは、ここに文書化されていますman pkill(やや不明確に-signal、これは実際には意味します-[signal]):

-signal --signal signal:一致した各プロセスに送信するシグナルを定義します。数値または記号の信号名のいずれかを使用できます。

プロセスを強制終了する場合は、デフォルトのシグナル(使用pkillせず-0に使用するSIGTERMか、代わりに別のシグナル名または番号を渡して使用します。

ちなみに、アプリケーションのライフサイクルを処理するこの方法は非常に基本的であり、さまざまな理由で失敗する可能性があります(たとえばkill、同期していないためrofi、次の方法で置き換える-0、次の方法が表示される前に前の方法がなくなる保証はありません致命的な信号)。そのため、理想的には、アプリケーション自体またはサービスマネージャーにこれをより確実に処理させる方がよいでしょう。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

pkill が rofi で機能しないのはなぜですか?

分類Dev

削除機能が機能しないのはなぜですか?

分類Dev

追加機能が機能しないのはなぜですか?

分類Dev

削除機能が機能しないのはなぜですか?

分類Dev

回文機能が機能しないのはなぜですか?

分類Dev

tcflushがscanfで機能しないのはなぜですか?

分類Dev

getElementByIdが機能しないのはなぜですか?Javaで

分類Dev

.includes()が.classListで機能しないのはなぜですか?

分類Dev

JavaScriptがJSFiddleで機能しないのはなぜですか?

分類Dev

instanceofがGenericで機能しないのはなぜですか?

分類Dev

localhostでzeromqが機能しないのはなぜですか?

分類Dev

onFling()がListViewで機能しないのはなぜですか?

分類Dev

「COALESCE」が「GROUPBY」で機能しないのはなぜですか?

分類Dev

「COALESCE」が「GROUPBY」で機能しないのはなぜですか?

分類Dev

Firefoxで.innerTextが機能しないのはなぜですか?

分類Dev

find( 'a')がjqueryで機能しないのはなぜですか?

分類Dev

Ctrl + AがCEditで機能しないのはなぜですか?

分類Dev

例でjqueryshow()が機能しないのはなぜですか

分類Dev

templateCacheがAngularjsで機能しないのはなぜですか?

分類Dev

coutがpthreadで機能しないのはなぜですか?

分類Dev

OptionTがTryで機能しないのはなぜですか?

分類Dev

JobSchedulerがKotlinで機能しないのはなぜですか?

分類Dev

VisualStateがlistviewitemで機能しないのはなぜですか?

分類Dev

ViewChildren()が属性で機能しないのはなぜですか?

分類Dev

AdaBoostがDecisionTreeで機能しないのはなぜですか?

分類Dev

FORMATがexpandpropertyで機能しないのはなぜですか

分類Dev

SwiftでUIRefreshControlが機能しないのはなぜですか?

分類Dev

AspectRatioがListViewで機能しないのはなぜですか?

分類Dev

Notebook()がIJuliaで機能しないのはなぜですか?

Related 関連記事

  1. 1

    pkill が rofi で機能しないのはなぜですか?

  2. 2

    削除機能が機能しないのはなぜですか?

  3. 3

    追加機能が機能しないのはなぜですか?

  4. 4

    削除機能が機能しないのはなぜですか?

  5. 5

    回文機能が機能しないのはなぜですか?

  6. 6

    tcflushがscanfで機能しないのはなぜですか?

  7. 7

    getElementByIdが機能しないのはなぜですか?Javaで

  8. 8

    .includes()が.classListで機能しないのはなぜですか?

  9. 9

    JavaScriptがJSFiddleで機能しないのはなぜですか?

  10. 10

    instanceofがGenericで機能しないのはなぜですか?

  11. 11

    localhostでzeromqが機能しないのはなぜですか?

  12. 12

    onFling()がListViewで機能しないのはなぜですか?

  13. 13

    「COALESCE」が「GROUPBY」で機能しないのはなぜですか?

  14. 14

    「COALESCE」が「GROUPBY」で機能しないのはなぜですか?

  15. 15

    Firefoxで.innerTextが機能しないのはなぜですか?

  16. 16

    find( 'a')がjqueryで機能しないのはなぜですか?

  17. 17

    Ctrl + AがCEditで機能しないのはなぜですか?

  18. 18

    例でjqueryshow()が機能しないのはなぜですか

  19. 19

    templateCacheがAngularjsで機能しないのはなぜですか?

  20. 20

    coutがpthreadで機能しないのはなぜですか?

  21. 21

    OptionTがTryで機能しないのはなぜですか?

  22. 22

    JobSchedulerがKotlinで機能しないのはなぜですか?

  23. 23

    VisualStateがlistviewitemで機能しないのはなぜですか?

  24. 24

    ViewChildren()が属性で機能しないのはなぜですか?

  25. 25

    AdaBoostがDecisionTreeで機能しないのはなぜですか?

  26. 26

    FORMATがexpandpropertyで機能しないのはなぜですか

  27. 27

    SwiftでUIRefreshControlが機能しないのはなぜですか?

  28. 28

    AspectRatioがListViewで機能しないのはなぜですか?

  29. 29

    Notebook()がIJuliaで機能しないのはなぜですか?

ホットタグ

アーカイブ