tmuxとscreenを使用すると、さまざまな仮想ウィンドウでさまざまなプロセス(vim、bashスクリプト、mysql、psqlなど)を実行できます。しかし、従来のUnixジョブ制御(CTRL-z、fg、bg、およびjobsを使用)は、同じ機能の一部を提供するようです。
tmuxと画面を介した新しい方法と比較して、マルチタスクに既存のタスク制御を使用することにはどのような利点がありますか?
答え1
画面外でプログラムを実行したとしましょう。突然、あなたはそのターミナルで別のことをしたいと思います。Ctrl+Z
。
Screenとtmuxは、アプリケーションと端末の間に分離層を導入します。これは常に良いとは限りません。たとえば、xtermよりもロールバックがはるかに便利であるため、リモートでセッションに接続する予定がない限り、screenはほとんど使用されません。
シェル(画面ウィンドウで利用可能)に環境変数、現在のディレクトリ、およびその他のパラメータを設定した場合は、これらの設定を新しい画面ウィンドウに転送するために多くの作業が必要になる場合があります。この端末では複数のプログラムを実行でき、便利です。
時々、バックグラウンドでプログラムを実行し、もはや関連していないことがありますnohup program & disown %-
。
GUIアプリケーションに時々問題が発生した場合は、端末で実行するか、必要に応じてfg; Ctrl+C
便利に実行できますkill %1
。
Screenとtmuxがインストールされていない可能性があります。
答え2
使いやすさが主な理由です。キーボードショートカットを使用して画面を切り替える方が、ジョブ制御機能を使用するよりもはるかに便利です。また、画面を使用するときは、各ウィンドウは別々の仮想端末に接続されますが、ジョブ制御を使用するときはプロセスを一時停止するか、バックグラウンドで実行できるようにするだけで端末を複雑にする必要があります。
最後に、既存のジョブ制御では、既存のセッションに再接続したり、他の人と共有したりすることはできません。