아직 실행되지 않은 경우 .bash_profile에서 명령을 어떻게 실행할 수 있나요?

아직 실행되지 않은 경우 .bash_profile에서 명령을 어떻게 실행할 수 있나요?

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

관련 정보