01.리눅스 기초 - 백그라운드 실행

ID짱재·2021년 3월 9일
0

Llinux

목록 보기
10/17
post-thumbnail

🌈 백그라운드 실행

🔥 백그라운드와 포그라운드

🔥 jobs 명령어

🔥 Kill 명령어

🔥 백그라운드 실행


1. 백그라운드와 포그라운드

  • 프로그램들을 알트탭으로 전환시킬 때, 현재 활성화된 창을 포그라운드 상태라하고 뒤에서 대기 중인 프로그램을 백그라운 상태라고 함
  • 이런 전환 방법을 Linux 환경에서도 contorl+Z 로 가능
  • 작업을 하다가 다른 작업을 위해 현재 작업을 종료하고, 잠시 후 다시 그 경로를 통해 접근하여 그 작업으 활성화 시키는 것은 번거롭기 때문에 백그라운드와 포그라운드의 전환을 통해 쉽게 넘나드는 방법을 익히는 것은 터미널에서 유용하게 사용됨

    1) 백그라운드 전환

    • 백그라운드 전환 contorl+Z로 가능
    • nano 또는 vim에서 작업 중 contorl+Z 누르면 아래와 같이 백그라운드 상태로 전환 가능
    • 이후 터미널에서 fg를 입력하면 다시 백그라운드 프로그램 중 대기 우선순위에 있는 프로그램이 포그라운드로 전환됨
    • 현재 백그라운드에 대기 중인 프로그램 확인하는 방법 : 터미널에 jobs입력

    2) nano에서 contorl+Z 안될 경우

    • Mac에서 nono로 contorl+Z 실행해 보았으나 백그라운드 전환이 안될 경우
    • 최상위 디렉토리에 .nanorc 파일을 생성 👈 nano .nanorc 입력
    • nano 텍스트 편집기에 들어가서 set suspend 입력 후 저장하고 나오면 설정 완료
    • 이후 작업하던 곳에서 백그라운드 실행 contorl+Z을 해보면 작동됨
    • vim에서는 다른 설정을 해주지 않아도 잘 작동되었다...👏

2. jobs 명령어

  • jobs 명령어는 현재 백그라운드에서 실행 중인(대기중) 프로그램의 목록을 반환
  • + 기호는 fg를 통해 백그라운드의 프로그램을 포그라운드로 전환시킬 때, 실행될 프로그램을 알려줌
  • - 기호는 그 다음 순서이고(대기 번호 2번), []안의 숫자는 프로그램의 인덱스 번호
  • 터미널에 fg %인덱스번호 를 입력하면 해당 인덱스 번호를 가진 프로그램을 포그라운드로 전환함
    - 🔍 fg %2 👈 백그라운드에 대기중인 2번 인덱스 프로그램을 포그라운드로 전환

3. Kill 명령어

  • 백그라운드에 대기 중인 프로그램을 종료하고 싶을 때, 그 프로그램을 실행시킨 뒤 종료해도 되지만 번거로움
  • kill %인덱스번호 : 인덱스 번호를 기준으로 프로그램을 종료시키는 기본 방법
    🔍 kill %2 👈 백그라운드 목록 중 2번 인덱스를 가진 프로그램 종료
  • kii -9 %인덱스번호 : 위 방법이 통하지 않았을 때, 사용하는 더욱 강력한 종료 방법
    🔍 kill -9 %2 👈 백그라운드에 대기중인 2번 인덱스를 가진 프로그램 강제 종료

4. 백그라운드 실행

  • 어떤 작업들은 때론 바로 백그라운드로 실행시켜야 할 때가 있음
  • 예를 들어, 어떤 명령의 소요 시간이 길다면, 백그라운드에서 그 작업을 실행시키고 화면에서는 다른 작업을 하고 있으면 됨
  • 바로 백그라운드로 실행시키고자한다면 맨 마지막이 &를 붙여주면 됨
  • 긴 시간이 소요되는 작업을 할 때, 백그라운드로 실행시키면 작업을 효율적으로 할 수 있음

    1) 엔퍼센트(&)

    • 🔍 ls -alR / > result.txt 2> error.log & 👈 ls -alR한 결과의 Standard 출력을 result.txt로 출력하는데 Standard Error가 발생하면 error.log에 출력하라는 명령
    • ls -R을 하면 현재 디렉토리 뿐만 아니라 모든 디렉토리의 파일과 디렉토리를 출력해줌
    • -R은 터미널에서 재귀적(Recursive)이라는 의미로 하위 디렉토리까지 계속 명령을 적용시키기 때문에 소요시간이 비교적 김
    • ls -alR을 하면 더욱 긴 시간이 소요되기 때문에 이럴 때 &로 명령하면 백그라운드에서 Running 중인 것을 확인할 수 있음
    • 백그라운드에서 실행중인 명령이 완료되면 exit ~ 고 알려줌
profile
Keep Going, Keep Coding!

1개의 댓글

comment-user-thumbnail
2024년 1월 8일

나노 백그라운드가 안되는 문제때문에 고민 중이었는데, 좋은 포스팅 감사합니다.
알려주신대로 해보고 있는데 루트 위치에 파일 생성이 안되네요
vi 도 안되고 touch 도 안되고 nano도 안되고 다른 곳에서 만든 파일을 루트 위치로 옮기는 것도 안됩니다.
물론 sudo 도 안되고 :w !sudo tee % > /dev/null 도 안됩니다..
혹시 여기에 대해 아시는 바가 있을까요?

답글 달기