레이블이 nohup인 게시물을 표시합니다. 모든 게시물 표시
레이블이 nohup인 게시물을 표시합니다. 모든 게시물 표시

caddy web server 사용하기

# caddy 는 golang 로 작성된 웹서버 오픈소스다.
# 간단한 설정으로 원하는 스타일의 웹서버를 띄울 수 있다.
# 윈도우, 리눅스, 맥, 안드로이드 환경에서도 동작한다.
# osx 설치 (add on 미포함)
brew install caddy

# linux 설치
mkdir caddy && cd caddy
curl -L -O https://github.com/mholt/caddy/releases/download/v0.11.5/caddy_v0.11.5_linux_amd64.tar.gz
tar zxvf caddy_v0.11.5_linux_amd64.tar.gz

# 8080(디폴트) 포트로 기본 실행
caddy

# 접속해보기
http://localhost:8080

# 설정 파일 사용
# vi Caddyfile
# port
:8080

# 사용자 인증 id pw
basicauth / ysoftman qwer1234

# 기본 적인 파일 브라우징(읽기)만 하는 설정
# 서비스할 루트 경로
root /home/ysoftman/myfiles
browse /

# http.filebrowser 플러그인 사용시
https://docs.filebrowser.xyz/installation
# 브라우저로 접속시 파일 추가 삭제를 가능 한 설정
filemanager / {
    show    /home/ysoftman/myfiles
    myfiles:
    allow_new       true
    allow_edit      true
    allow_commands  true
    allow_command   rm
    allow_command   mv
    allow           dotfiles
}

# 이전 캐디 프로세스 죽이기
cat mycaddy.pid | xargs kill -9

# 데몬으로 캐디 띄우기
nohup ./caddy -conf ./Caddyfile -pidfile mycaddy.pid > mycaddy.out 2>&1 &

# ansible shell 로 nohup 사용시 다음과 같이 ()로 subshell 을 사용해야한다.
# () 가 없으면 ansible 실행 종료 후 nohup 실행이 종료된다.
- shell: (nohup ./caddy -conf ./Caddyfile -pidfile mycaddy.pid > mycaddy.out 2>&1 &)


linux 데몬 생성하기

# 리눅스에서 데몬 생성(작업)하기

#####
# 방법1 - nohup 명령 사용
# & 백그라운드 작업을 수행할 수 있지만 hangup(터미널 종료) 되면 프로그램도 종료된다.
# 다음과 같이 nohup 명령을 사용하면 hangup 에 대한 면역(immune)으로 터미널 접속을 끊어도 프로그램은 데몬으로 계속 수행된다.
# 종료하려면 해당 프로세스를 kill 시켜야 한다.
# 실행 위치에 nohup.out 파일이 생성되며 쉘 스크립트 stdout 내용이 출력된다.
nohup sh ./ysoftmandaemon.sh


#####
# 방법2 - libslack daemon 프로그램
# centos
curl -OL http://libslack.org/daemon/download/daemon-0.6.4.tar.gz
tar zxvf daemon-0.6.4.tar.gz
cd daemon-0.6.4
make
sudo make install

# ubuntu
sudo apt-get install daemon

# mac
brew install daemon

# 데몬 실행(절대 경로 사용)
daemon --name=ysoftmandaemon --chdir="/home/ysoftman" --pidfile="/home/ysoftman/ysoftman.pid" -- sh ./ysoftmandaemon.sh

# 데몬 중지
daemon --name=ysoftmandaemon --pidfile="/home/ysoftman/ysoftman.pid" --stop


#####
# 방법3 - daemonize 프로그램
# centos
sudo yum install daemonize

# mac
brew install daemonize

# 실행
/usr/sbin/daemonize -a -c /home/ysoftman/myprogram\hello \
  -p /home/ysoftman/myprogram/hello.pid \
  -o /home/ysoftman/myprogram/hello-daemon.log \
  -e /home/ysoftman/myprogram/hello-daemon.err \
  -l /home/ysoftman/myprogram/hello.lock \
  /home/ysoftman/myprogram/hello