표적:
한 번만 실행하십시오 socat
. TCP를 통해 웹 서비스를 노출하려고
합니다 . 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