キーボードキーの代わりにコマンドラインでCtrl + Zをどのように使用できますか? [閉鎖]

キーボードキーの代わりにコマンドラインでCtrl + Zをどのように使用できますか? [閉鎖]

Control+Zキーボードキーの代わりにコマンドラインで作業する方法は? (Linuxで)

実行中のすべての端末を停止し、後で再起動する必要があります。

答え1

Control+フォアグラウンドのすべてのプロセス端末にシグナル(Linux amd64では20、Solaris amd64では24、FreeBSD amd64では18...シグナルを数字で参照するのは避けるのが最善です)を受け取るZ制御文字を書き込みます。プロセスグループ。suspSIGTSTP

-コマンドを使用してコマンドラインから信号を送信してプロセスを停止できますkill

kill -s STOP <pid>

<pid>一時停止したいプロセスのIDはどこにありますか)、または特定の名前を使用してプログラム内のすべてのプロセスを指定したい場合(技術的に名前が付けられた拡張正規表現に一致するすべてのプロセス):

pkill -STOP xterm

xtermサンプル名はどこにありますか?)

プロセスを再開する必要がある場合でも、SIGCONT同じ方法で信号が送信されます。

答え2

制御端末であるすべてのプロセス(該当する端末とシェルで実行されているすべてのフォアグラウンドおよびバックグラウンドジョブを含む)を停止するには、/dev/pts/12次のようにします。

pkill -STOP -t pts/12

これにより、会議リーダーも一時停止します。場合によっては、プロセスが自動的に再開される可能性があります。たとえば、GNU は中断されscreenたことを検出するとすぐに、セッションリーダーを直ちに再開します。

その端末のフォアグラウンドプロセスグループにSIGTSTP信号を送信するには、^Z次の手順を実行します。

kill -s TSTP -- "-$pgid"

ここでは、$pgidフォアグラウンドプロセスグループのプロセスグループIDです。リストにあるLinuxおよびBSDでは、ps -o tpgid= -p "$pid"その端末を制御端末として使用するプロセスのIDを実行して見つけることができます。$pidほとんどのシステムでは、これらのプロセスはtcgetpgrp()

どちらの場合も、SIGSTOP / SIGTSTPの代わりにSIGCONT信号を送信してこれらのプロセスを再開できます。

答え3

STOP中断したいプロセスにシグナルを送信します。

CONT停止したプロセスをキャンセルするために後でシグナルを送信できます。

たとえば、

pkill -STOP terminal

これにより、すべてのterminalプロセスが中断されます。

 pkill -CONT terminal

これにより、名前付きのすべてのプロセスが中断解除されますterminal

関連情報