ディスプレイマネージャーを強制終了し、スクリプトで別のマネージャーを起動します


0

gdm3を強制終了してXセッションを開始する小さなスクリプトがあります。動作しますが、3回実行する必要があります。

export DISPLAY=:0
var = $(pidof gdm3)
kill $(var)
X :0 &
xterm &
export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so

1回の実行で機能させるにはどうすればよいですか?

回答:


0

あなたの問題は父と子のプロセスに関係していると思います。スクリプトを3回実行する必要がある場合、gdm3が起動すると、1つの父プロセスと2つの子プロセスがあることが示唆されます。

スクリプトをループに編集してみてください。このようなもの:

export DISPLAY =:0 var = $(pidof gdm3)while [!-z "$ var"] do kill $(var)var = $(pidof gdm3)done X:0&xterm&export LD_PRELOAD = / usr / lib / libv4l / v4l1compat.so


あなたは正しい、私はgdm3を複数回殺さなければならなかった。スクリプトでgdm3を2回連続で強制終了しましたが、動作します。しかし、gdm3セッションを再度開始してスクリプトを実行すると、スクリプトはすべてのコマンドを実行しません-単純なkill gdm3コマンドの後に分割されます。そのため、スクリプトを複数回実行する必要があります。その場合、コードは役に立ちます。ループで実行することは考えていませんでした。プロセスでkillまたはkillallを実行すると、プログラムが停止するはずだと思った-それが私が尋ねた理由です。ありがとう!
カラット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.