ターゲット:
一度だけ実行してくださいsocat
。 TCP経由でWebサービスを公開しようとしてい
ます。docker
macOS/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