다음 명령을 실행하고 터미널을 닫고 싶습니다.
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
- Ctrl + Z는 프로그램을 중지(일시 중지)하고 쉘로 돌아갑니다.
bg
백그라운드에서 실행하세요.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