まだ実行されていない場合は、.bash_profileでコマンドをどのように実行できますか?

まだ実行されていない場合は、.bash_profileでコマンドをどのように実行できますか?

ターゲット:
一度だけ実行してくださいsocat。 TCP経由でWebサービスを公開しようとしてい
ます。dockermacOS/linux では、これらのサービスは Unix ソケットにバインドされます。次のコマンドは操作を完了します。

socat -d TCP-LISTEN:2376,range=127.0.0.1/32,reuseaddr,fork UNIX:/var/run/docker.sock

したがって、常にこれを入力することを覚えておく必要はなく、コンピュータの起動時に起動したいと思います。この具体的な目標を達成する方法がわかりませんが、いくつかのことをしました.bash_profile。だからsocat私は走るたびに走ることを選びますterminal。ただし、.bash_profile各インスタンスに対して実行されるため、terminalまだ実行されていない場合にのみコマンドを実行するメカニズムが必要です。しかし、.bash_profileすでに実行中の項目があるかどうかを確認する方法がわかりません。助けてください?

答え1

起動時にコマンドを開始するには、を使用できますcronjob

ルートとして:

crontab -e

次に、テキストエディタと同様に、次のように入力します。

@reboot /usr/bin/socat -d TCP-LISTEN:2376,range=127.0.0.1/32,reuseaddr,fork UNIX:/var/run/docker.sock

これは、crontabシステム起動時にコマンドを実行するように指示します。コマンドの後を押して、ENTERコマンドの後に新しい行があることを確認します。保存:wq!したいように入力してください。vim

システムを再起動し、grepコマンドを入力して実行中であることを確認します。

ps aux | grep socat

関連情報