구름ide 터미널 내 백그라운드 실행 관련해서 질문 드립니다.


  • Level 4

    안녕하세요? 구름ide 컨테이너를 주로 ssh로 이용하고 있는데요
    노드상에서 구동되는 웹서버라던지, 간단한 파이썬 스크립트중에도 마치 서버처럼 계속 돌리고싶은 스크립트가 있어 nohup 명령어를 사용하여 백그라운드 실행에는 성공하였습니다.
    하지만 ssh와 세션을 끊고 다시 연결해서 ps 명령으로 확인해보면 nohup으로 실행해뒀던 프로세스가 종료되어 있네요.
    그래서 검색해보다 두 가지 방법을 찾았는데 첫번째는
    nohup python myscript.py > stdout.log > stderr.log &
    이처럼 표준출력 로그와 애러로그 모두를 지정해서 실행하는 방법이었고
    두번째는 nohup으로 스크립트 실행 후
    disown -h 명령어를 실행하는 것이었습니다.
    두 방법 모두 실행해 보았지만 역시 ssh와 세션을 끊었다가 제접속 해보면 같은 현상이 발생하네요.
    컨테이너가 정지됬다고 보기엔 일단 짧은 시간이었고, 아파치나 엔진엑스같은 서비스로 등록되서 백그라운드로 도는 서버들은 잘 접속이 되었습니다.
    실행하고 싶은 스크립트를 서비스를 만들어서 백그라운드로 돌리는 방법도 있겠지만, 되도록 서비스파일 없이 문제를 해결하고 싶어서요.
    구름ide 문제인지 아니면 제가 잘못 찾은건지 정확히 모르겠어서 질문을 여기다 하는게 맞는가 싶지만, 혹시 해결 방법이 있다면 답변 부탁드리겠습니다.
    감사합니다.

  • Level 4

    @Wynter
    jobs 명령어도 실행했을 당시에는 확인이 되지만 세션을 끊고 다시 연결하면 확인이 안 되네요.
    스크립트는 대충 반복문 돌면서 작업하는 스크립트입니다.
    일단 조금 더 찾아보고 안되면 서비스를 하나 만들어서 돌려봐야겠네요.
    감사합니다

  • Level 14

    기존에 ps에는 잡혔던 명령어로 실행했을 시,

    jobs 명령어를 통해 백그라운드로 실행되는 프로그램을 확인할 수 있는데,

    백그라운드로 실행되는 프로그램이 확인 되나요?

  • Level 14

    @한동현

    ignoring input은 신경쓰지 않아도 될 것 같습니다.

    ps에 없다니, 스크립트 파일 내부가 어떻게 동작하는지 알아야할 것 같습니다.

    스크립트 파일 내부에 print()를 찍어도 nohup log에 아무것도 안 찍히나요?

  • Level 4

    @Wynter
    아 그건 단순히 처음 명령어를 입력할 때 파일 이름을 잘못 입력해서 찍혔던 로그 같습니다.
    역시 /var/log/nohup.log에 찍혔고, 다음에 오타를 수정해서 실행하니 아까 말슴드렸던대로
    nohup: ignoring input
    이 로그만 나오네요

  • Level 14

    @한동현

    can't open file 로그는 어디에 찍힌 로그인가요?

    script.py 파일이 존재하지 않나요?

  • Level 4

    @Wynter
    감사합니다. 알려주신 명령어를 실행했는데 ps에도 파이썬이 안 잡히네요.
    로그보니까
    nohup: ignoring input
    이거 말고는 나온게 없었네요. 처음에 파일이름을 잘못 지정해서 파이썬 실행할때 파일이름 잘못 지정하면 나오는 can't open file 어쩌고 이런 로그가 찍힌거보면 아예 안 되는 것 같지는 않은데 잘 모르겠네요.

  • Level 14

    @한동현

    setsid nohup sh -c "python script.py" > /var/log/nohup.log 2>&1 &

    명령어를 통해 실행해보신 후에도 백그라운드 실행이 안 되는지 확인해보시겠어요?
    (2>&1을 통해 에러와 출력 모두 nohup.log에 저장이 될 거에요)

    안 된다면, /var/log/nohup.log 에 저장된 내용을 알려주세요!

  • Level 4

    stdout, stderr 둘다 아무것도 출력된게 없네요
    그런데
    nohup python script.py
    이렇게 실행했을때 기본으로 지정되는 nohup.py에는 print로 출력한 것들이 잘 적혀있고, 파일지정없이 &를 붙여서 실행하면 역시 아무것도 기록되는게 없네요. 세션을 닫지 않아도요

  • Level 14

    안녕하세요.

    종료되었을 때 저장된 로그(stdout.log, stderr.log)에 어떤 내용이 출력되나요?