이번 시간에는 리눅스 sleep 명령어에 대해 알아보겠습니다.

 


 저는 oh my zsh 터미널의 맨 앞에 시간이 나오도록 설정했어요. 명령어가 실행된 시간을 볼 수 있게 하기 위해서입니다.

 

 sleep 5 &를 쳐 봅시다. 그러면, sleep 5는 백그라운드로 실행이 되는데요. [15/08/21 9:56:13]이 중요합니다. 이 때가 38482가 시작된 시각이기 때문입니다. 다음에 + 38482 done이 있는데요. sleep 5가 끝났다는 의미입니다. 9시 56분 13초에서 5초가 지난 시각이 9시 56분 18초입니다. 따라서, sleep 5는 5초 동안 pause 상태에 놓이게 됩니다.

 

 시간을 보니까 그러합니다.

 

 date 명령어를 이용해서 명령어가 실행된 시간을 측정할 수도 있는데요. date는 system date와 time을 알려주는 명령어입니다.

 

 

 date를 치니까 Sun Aug 15 22:02:51 KST 2021이라고 뜨는 군요. 중요한 것은 시간이 나왔다는 것입니다. 이를 응용해서 sleep 명령어가 실행되기 전과 후에 date를 실행하면 되겠네요. &&으로 여러 명령어들을 연결 시킬 수도 있습니다.

 

 

 (date && sleep 1m 5s && date)를 입력해 봅시다. 그러면, 1번째 명령어에 의해서, 22시 1분 49초라는 시각이 출력됩니다. 다음에, 2번째 명령어가 실행 되고, 3번째 명령어에 의해서 22시 2분 54초가 출력됩니다. 22시 1분 49초로부터 1분 5초가 지난 시각이 22시 2분 54초이니, 1분 5초 동안 pause 상태에 있었네요.

 

 

 sleep 2m 3s는 어떨까요? 백 그라운드로 실행시켜 보면, 10시 4분 27초부터 10시 6분 30초까지 실행되었음을 알 수 있어요. 2분 3초 동안 실행이 된 셈입니다.

 

 


 sleep 명령어는 특정 시간동안 delay를 시키는데요. NUMBER[SUFFIX]가 있어요. NUMBER는 수를 의미할 거고, SUFFIX 부분을 봐야 하는데요.

 

 Description을 보시면 명확하게 알 수 있어요. s는 초, m은 분, h는 시간, d는 일. 예를 들어 1m 5s라고 하면, 1분 5초를 의미합니다. 그리고, 1h 50m이라고 하면 1시간 50분을 의미해요. 즉, sleep 1h 50m은 1시간 50분동안 delay가 된다는 의미입니다.

 


 shutdown 명령어는 시스템 종료를 하는 명령어입니다.

 

 여기서 TIME argument가 보일 텐데요.

 

 

 hh:mm format이 가능하다고 되어 있어요. 만약에 10초 후에 종료되게 하려면 어떻게 해야 할까요? 10초 동안 pause를 시킨 다음에, shutdown now 명령어를 실행시키면 됩니다.

 

 

 이 명령어를 치시고 나서 10초 기다려 보시면 시스템이 종료됨을 알 수 있어요.