목차
없음
본문내용
수 있습니다."
# "잘 시간이 지난 것 같은데 꺼지지 그래."
exit $E_NOTROOT
fi
if [ -z "$1" ]
then
echo "사용법: `basename $0` find-string"
exit $E_NOPARAMS
fi
echo "'locate' 데이타베이스 업데이트중..."
echo "시간이 걸릴 수 있습니다."
updatedb /usr & # 루트로 실행시켜야 됩니다.
wait
# 'updatedb' 가 끝나기 전까지 이 다음 부분을 실행 시키지 않습니다.
# 아마도 업데이트된 최신 데이타베이스에
# 여러분의 찾는 파일이 반영돼 있기를 바랄테니까요.
locate $1
# wait 명령어를 쓰면,
# 'updatedb' 가 돌고 있는데 스크립트가 종료되는 최악의 시나리오에서
# 고아 프로세스를 만드는 것을 막아줍니다.
exit 0
wait %1 이나 wait $PPID 처럼 wait에 작업 ID를 인자로 줄 수도 있습니다. 작업 ID 테이블을 참고하세요.
작은 정보: 스크립트에서 어떤 명령어를 백그라운드로 돌리려고 & 를 붙여서 실행시키면 스크립트가 ENTER를 칠 때까지 멈춰 있을 수 있습니다. 명령어가 표준출력으로 쓰기 때문에 생기는 문제처럼 보이는데, 이것 때문에 아주 성가실 수 있습니다. #!/bin/bash
# test.sh
ls -l &
echo "Done."
bash$ ./test.sh
Done.
[bozo@localhost test-scripts]$ total 1
-rwxr-xr-x 1 bozo bozo 34 Oct 11 15:09 test.sh
백그라운드로 돌릴 명령어 다음에 wait를 두면 문제를 해결할 수 있어 보입니다. #!/bin/bash
# test.sh
ls -l &
echo "Done."
wait
bash$ ./test.sh
Done.
[bozo@localhost test-scripts]$ total 1
-rwxr-xr-x 1 bozo bozo 34 Oct 11 15:09 test.sh
7)nice - 프로세스 priority를 변경한다.
원격 user가에 정의된 멤버라면 지정된 의해 ftp
server process의 process nice value를 조절 한다. 만약가
지정되지 않으면, ftp server process nice value 는 기본으로 지정된
를 사용한다. 이 기본 nice value 조정은 ftpaccess file에
존재하는 class-specific 'nice' 지시자에 대해 어떤 class에도
속하지 않는 user들을 위해 server process의 nice value를 조정하기
위하여 사용되어 진다.
8)ptrace - 자식 프로세스를 추적한다(trace)
9)exit - 프로그램을 종료 시킨다.
스크립트를 무조건 끝냄. exit는 정수값을 인자로 받아서 쉘에게 스크립트의 종료 상태를 알려줄 수도 있습니다. 아주 간단한 스크립트가 아니라면 스크립트의 마지막에 exit 0처럼 성공적인 실행을 알려 주는 것은 아주 좋은 습관입니다.
참고: 만약에 exit가 인자 없이 쓰인다면 그 스크립트의 종료 상태는 exit를 제외하고 가장 마지막에 실행된 명령어의 종료 상태로 됩니다.
10)wait - 프로세스의 종료를 기다린다.
백그라운드로 실행중인 모든 작업이나 옵션으로 주어진 특정 작업 번호나 프로세스 아이디가 끝날 때까지 스크립트 실행을 중단 시킵니다. 자신이 기다리고 있던 명령어의 종료 상태를 리턴합니다.
백그라운드 작업이 끝나기 전에 스크립트가 끝나는 것(무서운 고아 프로세스를 만들어 낼 수 있습니다)을 피하기 위해 wait 명령어를 쓸 수도 있습니다.
예 11-16. 작업을 계속 해 나가기 전에 프로세스가 끝나길 기다리기
#!/bin/bash
ROOT_UID=0 # $UID 가 0인 사용자만이 루트 권한을 갖습니다.
E_NOTROOT=65
E_NOPARAMS=66
if [ "$UID" -ne "$ROOT_UID" ]
then
echo "이 스크립트는 루트만 실행시킬 수 있습니다."
# "잘 시간이 지난 것 같은데 꺼지지 그래."
exit $E_NOTROOT
fi
if [ -z "$1" ]
then
echo "사용법: `basename $0` find-string"
exit $E_NOPARAMS
fi
echo "'locate' 데이타베이스 업데이트중..."
echo "시간이 걸릴 수 있습니다."
updatedb /usr & # 루트로 실행시켜야 됩니다.
wait
# 'updatedb' 가 끝나기 전까지 이 다음 부분을 실행 시키지 않습니다.
# 아마도 업데이트된 최신 데이타베이스에
# 여러분의 찾는 파일이 반영돼 있기를 바랄테니까요.
locate $1
# wait 명령어를 쓰면,
# 'updatedb' 가 돌고 있는데 스크립트가 종료되는 최악의 시나리오에서
# 고아 프로세스를 만드는 것을 막아줍니다.
exit 0
wait %1 이나 wait $PPID 처럼 wait에 작업 ID를 인자로 줄 수도 있습니다. 작업 ID 테이블을 참고하세요.
작은 정보: 스크립트에서 어떤 명령어를 백그라운드로 돌리려고 & 를 붙여서 실행시키면 스크립트가 ENTER를 칠 때까지 멈춰 있을 수 있습니다. 명령어가 표준출력으로 쓰기 때문에 생기는 문제처럼 보이는데, 이것 때문에 아주 성가실 수 있습니다. #!/bin/bash
# test.sh
ls -l &
echo "Done."
bash$ ./test.sh
Done.
[bozo@localhost test-scripts]$ total 1
-rwxr-xr-x 1 bozo bozo 34 Oct 11 15:09 test.sh
백그라운드로 돌릴 명령어 다음에 wait를 두면 문제를 해결할 수 있어 보입니다. #!/bin/bash
# test.sh
ls -l &
echo "Done."
wait
bash$ ./test.sh
Done.
[bozo@localhost test-scripts]$ total 1
-rwxr-xr-x 1 bozo bozo 34 Oct 11 15:09 test.sh
# "잘 시간이 지난 것 같은데 꺼지지 그래."
exit $E_NOTROOT
fi
if [ -z "$1" ]
then
echo "사용법: `basename $0` find-string"
exit $E_NOPARAMS
fi
echo "'locate' 데이타베이스 업데이트중..."
echo "시간이 걸릴 수 있습니다."
updatedb /usr & # 루트로 실행시켜야 됩니다.
wait
# 'updatedb' 가 끝나기 전까지 이 다음 부분을 실행 시키지 않습니다.
# 아마도 업데이트된 최신 데이타베이스에
# 여러분의 찾는 파일이 반영돼 있기를 바랄테니까요.
locate $1
# wait 명령어를 쓰면,
# 'updatedb' 가 돌고 있는데 스크립트가 종료되는 최악의 시나리오에서
# 고아 프로세스를 만드는 것을 막아줍니다.
exit 0
wait %1 이나 wait $PPID 처럼 wait에 작업 ID를 인자로 줄 수도 있습니다. 작업 ID 테이블을 참고하세요.
작은 정보: 스크립트에서 어떤 명령어를 백그라운드로 돌리려고 & 를 붙여서 실행시키면 스크립트가 ENTER를 칠 때까지 멈춰 있을 수 있습니다. 명령어가 표준출력으로 쓰기 때문에 생기는 문제처럼 보이는데, 이것 때문에 아주 성가실 수 있습니다. #!/bin/bash
# test.sh
ls -l &
echo "Done."
bash$ ./test.sh
Done.
[bozo@localhost test-scripts]$ total 1
-rwxr-xr-x 1 bozo bozo 34 Oct 11 15:09 test.sh
백그라운드로 돌릴 명령어 다음에 wait를 두면 문제를 해결할 수 있어 보입니다. #!/bin/bash
# test.sh
ls -l &
echo "Done."
wait
bash$ ./test.sh
Done.
[bozo@localhost test-scripts]$ total 1
-rwxr-xr-x 1 bozo bozo 34 Oct 11 15:09 test.sh
7)nice - 프로세스 priority를 변경한다.
원격 user가
server process의 process nice value를 조절 한다. 만약
지정되지 않으면, ftp server process nice value 는 기본으로 지정된
존재하는 class-specific 'nice' 지시자에 대해 어떤 class에도
속하지 않는 user들을 위해 server process의 nice value를 조정하기
위하여 사용되어 진다.
8)ptrace - 자식 프로세스를 추적한다(trace)
9)exit - 프로그램을 종료 시킨다.
스크립트를 무조건 끝냄. exit는 정수값을 인자로 받아서 쉘에게 스크립트의 종료 상태를 알려줄 수도 있습니다. 아주 간단한 스크립트가 아니라면 스크립트의 마지막에 exit 0처럼 성공적인 실행을 알려 주는 것은 아주 좋은 습관입니다.
참고: 만약에 exit가 인자 없이 쓰인다면 그 스크립트의 종료 상태는 exit를 제외하고 가장 마지막에 실행된 명령어의 종료 상태로 됩니다.
10)wait - 프로세스의 종료를 기다린다.
백그라운드로 실행중인 모든 작업이나 옵션으로 주어진 특정 작업 번호나 프로세스 아이디가 끝날 때까지 스크립트 실행을 중단 시킵니다. 자신이 기다리고 있던 명령어의 종료 상태를 리턴합니다.
백그라운드 작업이 끝나기 전에 스크립트가 끝나는 것(무서운 고아 프로세스를 만들어 낼 수 있습니다)을 피하기 위해 wait 명령어를 쓸 수도 있습니다.
예 11-16. 작업을 계속 해 나가기 전에 프로세스가 끝나길 기다리기
#!/bin/bash
ROOT_UID=0 # $UID 가 0인 사용자만이 루트 권한을 갖습니다.
E_NOTROOT=65
E_NOPARAMS=66
if [ "$UID" -ne "$ROOT_UID" ]
then
echo "이 스크립트는 루트만 실행시킬 수 있습니다."
# "잘 시간이 지난 것 같은데 꺼지지 그래."
exit $E_NOTROOT
fi
if [ -z "$1" ]
then
echo "사용법: `basename $0` find-string"
exit $E_NOPARAMS
fi
echo "'locate' 데이타베이스 업데이트중..."
echo "시간이 걸릴 수 있습니다."
updatedb /usr & # 루트로 실행시켜야 됩니다.
wait
# 'updatedb' 가 끝나기 전까지 이 다음 부분을 실행 시키지 않습니다.
# 아마도 업데이트된 최신 데이타베이스에
# 여러분의 찾는 파일이 반영돼 있기를 바랄테니까요.
locate $1
# wait 명령어를 쓰면,
# 'updatedb' 가 돌고 있는데 스크립트가 종료되는 최악의 시나리오에서
# 고아 프로세스를 만드는 것을 막아줍니다.
exit 0
wait %1 이나 wait $PPID 처럼 wait에 작업 ID를 인자로 줄 수도 있습니다. 작업 ID 테이블을 참고하세요.
작은 정보: 스크립트에서 어떤 명령어를 백그라운드로 돌리려고 & 를 붙여서 실행시키면 스크립트가 ENTER를 칠 때까지 멈춰 있을 수 있습니다. 명령어가 표준출력으로 쓰기 때문에 생기는 문제처럼 보이는데, 이것 때문에 아주 성가실 수 있습니다. #!/bin/bash
# test.sh
ls -l &
echo "Done."
bash$ ./test.sh
Done.
[bozo@localhost test-scripts]$ total 1
-rwxr-xr-x 1 bozo bozo 34 Oct 11 15:09 test.sh
백그라운드로 돌릴 명령어 다음에 wait를 두면 문제를 해결할 수 있어 보입니다. #!/bin/bash
# test.sh
ls -l &
echo "Done."
wait
bash$ ./test.sh
Done.
[bozo@localhost test-scripts]$ total 1
-rwxr-xr-x 1 bozo bozo 34 Oct 11 15:09 test.sh
소개글