π§ nohup λ°±κ·ΈλΌμ΄λλ‘ νλ‘κ·Έλ¨ λ리기 &
π nohup (no hang up)
리λ μ€μμ νλ‘μΈμ€λ₯Ό μ€νν ν°λ―Έλμ μΈμ μ°κ²°μ΄ λμ΄μ§λλΌλ λ°±κ·ΈλΌμ΄λλ‘ μ§μμ μΌλ‘ λμνκ² ν΄μ£Όλ λͺ λ Ήμ΄
- νμ¬ μ¬μ©μ μΈμ μ΄ μλ μ΄μ체μ κ° μ 곡νλ λ°±κ·ΈλΌμ΄λ 곡κ°μμ μ€νλ¨
nohup ./batch.sh
π nohup.out νμΌ
nohup.out νμΌμ νμ€μΆλ ₯κ³Ό νμ€μλ¬ λ©μμ§ λͺ¨λ κΈ°λ‘λ©λλ€.
λͺ λ Ήμ΄ μ΅μ μ ν΅ν΄ νμ€ μ λ ₯, νμ€ μΆλ ₯, νμ€ μλ¬λ₯Ό ꡬλΆνμ¬ νμΌμ μμ±ν μ μμ΅λλ€.
0 | νμ€ μ λ ₯ |
1 | νμ€ μΆλ ₯ |
2 | νμ€ μλ¬ |
μλ λͺ λ Ήμ΄λ‘ μΆλ ₯μ batch.out νμΌμ μμ±μ νκ³ , μλ¬λ batch.err νμΌμ μμ±νλλ‘ ν μ μμ΅λλ€.
nohup ./batch.sh 1 > batch.out 2 > batch.err
π huponexit μ€μ / &
shoptλ μμ΅μ μ μ‘°ννλ λͺ λ Ήμ΄λ‘ μλ λͺ λ Ήμ΄λ₯Ό ν΅ν΄μ huponexit μ€μ μ¬λΆλ₯Ό νμΈν μ μμ΅λλ€.
shopt | grep huponexit
huponexit μ€μ μ΄ ONμ΄λΌλ©΄ μ€νλ λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€λ€μ μΈμ
μ°κ²° μ’
λ£ μ hang-upλμ΄ λ³΄μ‘΄λ©λλ€.
μΈμ μ°κ²° μ νλ‘κ·Έλ¨μ΄ μ’ λ£λλ λ¨μ λ°±κ·ΈλΌμ΄λ ννλ‘ μνμ μλ―Ένλ &λ₯Ό λΆμΈ νλ‘κ·Έλ¨μ΄ μν₯μ λ°μ nohup ν¨κ³Όλ₯Ό λ°κ² λ©λλ€.
- μ¬μ©μ μΈμ μμ μ€νλλ©°, νλ©΄ μΆλ ₯λ§ λ°±κ·ΈλΌμ΄λλ‘ μ νν μν
./batch.sh &
μμ νκ² λ°±κ·ΈλΌμ΄λμμ μ€ννκΈ° μν΄μλ nohupκ³Ό &μ μ‘°ν©ν΄ μλ ννλ‘ μ€ννλ κ²μ΄ μ’μ λ°©λ²μ λλ€.
nohup ./batch.sh &
π νλ‘μΈμ€ μ’ λ£ λ°©λ²
λ°±κ·ΈλΌμ΄λλ‘ λμκ°λ νλ‘κ·Έλ¨μ μ’ λ£νκΈ° μν΄μ νλ‘μΈμ€ id(PID)λ₯Ό νμΈν΄μΌ ν©λλ€.
ps -ef | grep batch.sh
νμΈν νλ‘μΈμ€ idλ₯Ό κ°μ§κ³ kill λͺ λ Ήμ΄ μνν΄ λ°±κ·ΈλΌμ΄λλ‘ μ€νλλ νλ‘μΈμ€λ₯Ό μ’ λ£ν μ μλ€.
kill -9 9030