CLI는 여러 명령을 실행하고 터미널을 닫습니다.

CLI는 여러 명령을 실행하고 터미널을 닫습니다.

다음 명령을 실행하고 터미널을 닫고 싶습니다.

mysqldump -udatabase -pdatabase database > db.sql && zip db.sql.zip db.sql && rm db.sql && mv db.sql.zip /var/www/vhosts/*/httpdocs && cd /var/www/vhosts/*/httpdocs && zip -r backup.zip . && cd && touch backup_is_ready

터미널이 열려 있으면 제대로 작동하지만 ZIP은 약 40GB이고 터미널을 닫을 수 있기를 원합니다. 그렇지 않으면 연결을 끊으면 프로세스가 종료될 수 있습니다.

그래서 A && B 명령이 있습니다.

나는 시도했다:

(A &) && (B &)

(A && B) &

{A && B} &

nohup sh -c "A && B"

nohup { A && B } &

그리고 다른 많은 옵션이 있지만 아무것도 작동하지 않습니다.

명령 문자열을 터미널에 넣은 다음 터미널을 닫고 1시간 후에 다시 돌아와서 준비하고 싶습니다.

나는 또한 더 긴 명령 체계를 가지고 있습니다.

sh <(wget -O - https://autoinstall.plesk.com/one-click-installer) && plesk bin init_conf --init -name "John Doe" -passwd "mypassword" -email "[email protected]" -send_announce false -trial_license true -license_agreed true && plesk bin subscription --create example.com -owner admin -service-plan "Unlimited" -ip 000.000.000.000 -login username -passwd 'password' && ...

내 명령 체인은 터미널이 열려 있을 때 잘 작동합니다. 터미널에 넣은 후 명령 체인을 닫고 싶지만 이에 대한 파일을 만들고 싶지 않습니다.

Bash 파일을 만들지 않고도 사용할 수 있는 구문이 있나요?

답변1

  1. Ctrl + Z는 프로그램을 중지(일시 중지)하고 쉘로 돌아갑니다.
  2. bg백그라운드에서 실행하세요.
  3. disown -h [job-spec]어디[직업 스펙]터미널이 닫힐 때 작업이 종료되지 않도록 작업 번호(예: 실행할 첫 번째 작업의 경우 %1, 작업 번호를 찾으려면 jobs 명령을 사용)입니다.

답변2

백그라운드에서 프로그램을 시작하려면 다음을 사용하십시오.

<your command> &

원하는 것을 두 개의 별도 명령으로 실행하는 것이 좋습니다. 노력하다:

user@hostname$ A &
user@hostname$ B &

이 프로세스가 너무 번거롭거나 자주 실행해야 하는 경우 다음 명령을 입력할 수 있습니다.쉘 스크립트. 그런 다음 스크립트를 실행할 수 있습니다

/path/to/my_script.sh &

고쳐 쓰다:

귀하의 의견에 있는 다른 정보를 바탕으로 호스트에 ssh를 연결하고 여러 명령을 실행한 다음 연결을 끊는 방법에 대한 개요는 이 답변을 참조하세요.https://stackoverflow.com/a/4412338/3465014

관련 정보