sh sys-snap.sh &
무엇인가요 sh
? 무엇인가요 sys-snap.sh
? 왜 &
줄 끝에 넣어야 하나요 ? 누구든지 구문을 설명할 수 있나요?
그렇지 않은 경우 +를 &
누를 때까지 스크립트는 프롬프트로 돌아오지 않습니다 . Enter를 누르면 작동합니다.CtrlC&
답변1
sh
기본값입니다Bourne 호환 케이스(보통 bash 또는 dash)
sys-snap.sh
sh
실행할 명령이 포함된 쉘 스크립트입니다 . 콘텐츠를 게시하지 않으셨기 때문에 이름만 보고 기능을 추측할 수 있습니다. 모든 현재 프로세스, 현재 메모리 사용량, 데이터베이스 상태 등을 포함하는 로그 파일을 생성하는 동일한 파일 이름을 가진 CPanel 관련 스크립트를 찾을 수 있습니다. 스크립트가 다음으로 끝나는 경우셰르본 라인(또는 유사) 현재 디렉토리에 있으면 #!/bin/sh
실행 가능하게 만들고 chmod +x sys-snap.sh
../sys-snap.sh
&
프로세스가 백그라운드에서 시작되므로 스크립트가 완료될 때까지 기다리지 않고 셸을 계속 사용할 수 있습니다 . 잊어버린 경우 를 사용하여 현재 실행 중인 프로세스를 중지 Ctrl-Z
하고 백그라운드 bg
(또는 포그라운드 fg
)에서 을 사용하여 계속할 수 있습니다. 자세한 내용은 다음을 참조하세요.직업 통제
답변2
이것이 job control
유닉스에서는 호출되는 것입니다. &
명령을 백그라운드에 두도록 쉘에 지시합니다 . 이는 sys-snap.sh
명령을 계속 실행하지만 병렬 명령을 계속 실행할 수 있도록 셸로 돌아가는 것을 의미합니다.
이 명령을 사용하면 현재 실행 중인 작업 목록을 볼 수 있습니다 jobs
. 이 명령을 사용하여 명령으로 돌아갈 수 있습니다("전경"으로 이동) fg
. 이렇게 하면 명령이 프롬프트가 표시되지 않는 상태로 다시 돌아가므로 다음을 실행해야 합니다 Ctrl.C죽이다의 과정. 하지만 넌 할수있어정지시키다(일시 중지) 프로세스가 Ctrl- 을 내보냅니다 Z. 그러면 일시 중지 sys-snap.sh
되고 프롬프트로 돌아갑니다. 그런 다음 배경으로 설정할 수 있습니다(마치 게시한 것처럼).그리고) 명령을 &
사용하면bg
다시 덮다일시정지 상태에서 실행 중 Ctrl- Z입력하세요.
다음과 같이 한 번에 여러 작업을 수행할 수 있습니다 jobs
.
[1]- Running sys-snap.sh &
[2]+ Running another-script.sh &
해당 작업 번호, %1
will sys-snap.sh
및 will be를 사용하여 %2
배경 및 전경에 배치 할 수 있습니다 another-script.sh
. 매개변수를 사용하거나 fg
사용하지 않으면 bg
위 출력에 표시된 작업에 대해 명령이 실행됩니다.+
jobs
fg %1
배경에 sys-snap.sh
남아 있으면서 다시 전경으로 돌아 옵니다 .another-script.sh
이 명령을 사용하면 포그라운드로 가져오지 않고도 실행 중인 작업에 Ctrl- 시퀀스를 실행할 수 있습니다. 그러면 - 에 해당하는 내용이 전송됩니다 .Ckill
kill %1
CtrlCsys-snap.sh
Bash 셸을 사용하는 경우 man bash
명령의 "작업 제어" 섹션 아래에 자세한 내용을 제공하는 세부 정보 섹션이 있습니다.
name 의 경우 sys-snap.sh
파일 이름은 Unix에서 임의적입니다(동적으로 로드된 파일과 같은 일부 예외 있음). 쉘 스크립트로 실행하거나 perl
또는 php
등과 같은 다른 명령을 호출하기 위해 특정 파일 확장자를 가질 필요는 없습니다. 이는 명확성을 제공하기 위해 자주 사용되며, 이 경우 .sh
Bourne Shell을 사용하는 쉘 스크립트 입니다 /bin/sh
.
sys-snap.sh
(명령어 같은 것으로 내용을 볼 때) 기능 부분 less
은셰르본. 첫 번째 줄에서 다음 중 하나를 찾을 수 있습니다.
#! /bin/sh
#! /bin/bash
#! /usr/local/bin/bash
또는 유사합니다. 기본적으로 #!
(예: /bin/sh
) 다음에 명령을 실행하고 나머지 스크립트 파일의 내용을 한 번에 한 줄씩 입력합니다. 또한 파일 chmod
을 명령으로 실행할 수 있도록 실행 파일로 설정해야 합니다 . 권한이 설정되지 않으면 shebang
다음 오류 메시지가 표시되므로 아무 효과가 없습니다.
bash: sys-snap.sh: command not found
./sys-snap.sh
또는 명시적인 경로(예: 현재 작업 디렉터리)를 통해 실행하면 다음과 같은 결과 .
가 나타납니다.
bash: ./sys-snap.sh: Permission denied
또 다른 옵션은 실행 권한 없이 그대로 두고 명시적으로 /bin/sh에 실행을 요청하는 것입니다.
/bin/sh sys-snap.sh &
답변3
sh
껍질이에요. 사용되는 쉘은 시스템에 따라 다릅니다. bash
시스템을 표준 쉘로 사용하는 예:
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Mar 13 16:12 /bin/sh -> bash
$ sh --version
GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu)
sys-snap.sh
일종의 쉘 스크립트이므로 sh sys-snap.sh
쉘 스크립트가 실행됩니다.
&
쉘 프로세스가 백그라운드에서 실행됩니다. 그렇지 않은 경우 &
스크립트가 끝날 때까지 전경에 유지됩니다. 어느 쪽이든 스크립트는 작동할 것입니다. 추가 명령을 실행하기 전에 스크립트가 끝날 때까지 기다리는 문제일 뿐입니다.
답변4
귀하의 서버가 Hostgator에 있습니까?
이 스크립트는 sys-snap.sh
시스템의 모든 로그 파일과 데이터를 수집하기 위해 Hostgator 팀이 작성한 특수 스크립트이므로 해당 출력을 사용하여 시스템 정보를 모니터링하고 수집합니다.