1.6 KiB
1.6 KiB
시스템
시스템 명령어를 실행하는 가장 쉬운 방법은 백틱으로 감싸는 것입니다. 결과값을 반환 받을 수 있습니다.
@files = `ls -al`;
eval
system
system("ls -al");
결과값은 화면으로 출력됩니다.
fork
fork()는 프로세스를 복제합니다. 새로 생성된 자식 프로세스는 fork()된 시점부터 진행되며 0을 반환받습니다. 부모 프로세스는 자식 프로세스의 프로세스 번호를 반환 받습니다. 프로세스 생성에 실패한 경우에는 undef가 반환됩니다.
my $process_id = fork();
if ($process_id == 0) {
# Child process
print "Child process.\n";
} else {
# Parent process
print "Parent process.\n";
}
생성된 자식 프로세스를 종료하려면 exit()를 사용합니다. 자식 프로세스가 모두 종료되기 전에는 메인 프로세스가 종료되지 않습니다.
exit(0);
프로세스
특수변수인 $$ 또는 $PROCESS_ID를 사용해서 현재 프로세스 번호를 알아낼 수 있습니다.
-
exec
system()과 비슷하지만 명령 실행 전에 현재 프로세스가 종료됩니다. -
kill
프로세스 그룹에 종료 신호를 보냅니다.
kill("INT", @proc_list); -
sleep
sleep(5); # 5초 동안 쉽니다. -
times
프로그램에 소요된 시간을 리스트로 반환합니다.
-
wait
자식 프로세스가 종료될 때까지 기다립니다. 자식 프로세스가 없다면 -1이 반환됩니다.
$process_id = wait(); -
waitpid