![Ctrl+D を押さずに「壁」を終了するには? [閉鎖]](https://linux33.com/image/214440/Ctrl%2BD%20%E3%82%92%E6%8A%BC%E3%81%95%E3%81%9A%E3%81%AB%E3%80%8C%E5%A3%81%E3%80%8D%E3%82%92%E7%B5%82%E4%BA%86%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
私はcrontabを使用してすべてのユーザーにメッセージを送信しています。
私は書いた
*/1 * * * * wall $(bash some_shell_script.sh)
Ctrl+Dしかし、問題は、メッセージを終了するには常にボタンを押す必要があることです。
この問題をどのように解決できますか?
答え1
コマンドwall
はのコンテキストで実行されますcron
。それはその仕事をして終了します。
受信表示装置(端末)では、から通知が届きますwall
。この通知は端末で実行されている操作とは無関係であるため、通知メッセージの送信中にコマンドラインプロンプトに静かに座ってもプロンプトは上書きされません。プロンプトを再送信するにはEnterキーを押す必要があることがわかりますが、実際にはこれは必要ありません。通常、コマンドを入力するだけです。
シーンタイムライン
- ログインしてコマンドプロンプトに座っています。
- 端末に通知が
wall
送信されました - 入力
ls
して(クリックします。)入力する)
ステップ3では、目立つプロンプトは表示されませんが、シェルはまだユーザーコマンドを待っています。
crontab
または、実際にコマンドを終了する方法について話している可能性があります。この例では、Ctrl / Dを使用して入力が終了したことを示します。
想像する
crontab
- あなたは行を入力
*/1 * * * * bash some_shell_script.sh | wall
- Ctrl / Dを押して
crontab
コマンドのデータ入力を終了します。
ステップ3のCtrl / Dはこれとは何の関係もありませんwall
。また、このエントリはcrontab
1分ごとにコマンドを繰り返します。wall
これは本当にあなたが望むものですか?
答え2
GNU画面を使用すると、終了せずにバックグラウンドプロセスを分離できます。
- ディストリビューションにGNU Screenをインストールする
screen -R wall
wall $(bash some_shell_script.sh)
- Ctrl-A、Ctrl-D