SSH and Screen

Ryu·2022년 5월 3일
0

2020-archive

목록 보기
2/7

2020년에 작성한 노트를 옮겨 적은 것입니다.

SSH로 명령어 보내기

ssh -p 31521 foo@bar.com 'source /home/foo/foo_profile && env | grep foo'

ssh host 뒤의 명령어로 새로운 shell (login shell)로 실행 후 종료. .bashrc는 실행되지 않는다.

~/.bashrc: executed by bash(1) for non-login shells.

Screen으로 명령어 보내기

screen -dmS "[session # or name]" -L -Logfile [LOGFILE_NAME] [COMMAND]
screen -X -S [session # or name] quit
  • -d: detaches the elsewhere running screen session. 디태치할 세션 없으면 무시됨.
  • -m: $STY 환경변수 무시하고 screen이 다른 세션에서 열렸는지에 상관없이 새 세션 연다
  • -dm: Start screen in "detached" mode. This creates a new session but doesn't attach to it. This is useful for system startup scripts.
  • -L: 자동으로 output logging 함.
  • -Logfile: 파일이름 주어지지 않을 경우 screen.%n"
  • -X : execute cmd in the specified session

Screen으로 빌드 명령하기

screen -dmS "BUILD_SESSION" -L -Logfile ~/build.log ~/build.sh

주의 사항

  • build.sh 파일에 hashbang 으로 bash 명시해줘야 함
  • 밖에서 명령어 돌릴 경우 ~가 아니라 full path 명시해줘야 함
  • build.sh는 executable이어야 함

빌드중인 쉘에 붙기

screen -r [SESSION_NAME]
  • -r: resume a detached screen session. 붙을 세션 없을 경우 무시됨
  • attach한 상황에서 SIGINT 날리면 빌드 종료됨. screen detach 필요

0개의 댓글