νλ‘μΈμ€ μμ λ° μ’ λ£ μ€ν¬λ¦½νΈ
Ubuntuμ κ°μ 리λ μ€ λ°°ν¬νμ APT κ·Έλ¦¬κ³ CentOSμ κ°μ 리λ μ€ λ°°ν¬νμ YUM μ΄λ DNFλ₯Ό μ¬μ©νμ¬ ν¨ν€μ§λ₯Ό μ€μΉν μ μμ΅λλ€. ν¨ν€μ§ 맀λμ λ₯Ό ν΅ν΄μ μ€μΉνλ κ²½μ° System and Service Managerλ₯Ό ν΅ν΄ μλΉμ€ λ±λ‘μΌλ‘ μ½κ² νλ‘μΈμ€λ₯Ό μ€ννκ³ μ’ λ£ν μ μκ² μ§μν©λλ€.
sudo systemctl enable --now docker
κ·Έλ¬λ, κ°λμ ν¨ν€μ§ 맀λμ μμ κΈ°λ³Έμ μΌλ‘ λ±λ‘λ 리νμ§ν 리(Repository)μμ λ€μν λ²μ μ μ§μνμ§ μμμΌλ‘ μΈν΄ μλΌμ€ν±μμΉ 7.12.0 λ°μ΄λ리 λ€μ΄λ‘λλ₯Ό ν΅ν΄ μ΄μ체μ μν€ν μ² λ¨μλ‘ λΉλλ μμ€λ₯Ό μ¬μ©νκΈ°λ ν©λλ€. μ΄λ¬ν κ²½μ° μ§μ Systemdμ μλΉμ€λ₯Ό λ§λ€μ΄μ λ±λ‘νκ±°λ νλ‘μΈμ€ μμ λλ μ’ λ£λ₯Ό μν μ€ν¬λ¦½νΈλ₯Ό λ§λ€μ΄μΌν©λλ€.
μλΉμ€ λ±λ‘ μ΄μΈμλ λ컀 컨ν μ΄λλ₯Ό κΈ°λ°μΌλ‘ κ°λ¨νκ² νλ‘μΈμ€λ₯Ό μλμΌλ‘ μ¬μμν μ μκ² κ΅¬μ±ν μ μμ΅λλ€.
νμ¬ λ΄λΉνκ³ μλ μΌλ³Έ κ³ κ° νκ²½μ κ²½μ°μλ μλ§μ‘΄ μΉ μλΉμ€μ λμΏ(ap-northeast-1) 리μ μ λκ·λͺ¨ μ₯μ μ μ¦μ μ§μ§μΌλ‘ μΈν μ μ μ¬νλ±μ κ³ λ €ν΄μ μμ€ν μ΄ μμ μ μΈ μνλ‘ μλμΌλ‘ 볡ꡬλλλ‘ νλ‘μΈμ€λ₯Ό μ¬μμνλ κ²μ΄ νμν©λλ€. μ΄μ κ°μ μ΄μ λ‘ κ³ κ° νκ²½μμ μ¬μ©μ€μΈ μλ§λ¦¬λ μ€(AlmaLinux)λ₯Ό κΈ°μ€μΌλ‘ μλΌμ€ν±μμΉ νλ‘μΈμ€λ₯Ό μ€ννκ³ μ’ λ£νλ μ€ν¬λ¦½νΈλ₯Ό μμ±ν΄λ³΄λλ‘ νκ² μ΅λλ€.
μλΌμ€ν±μμΉ μ€ν μ€ν¬λ¦½νΈ
#!/bin/bash
ES_USER="ec2-user"
ES_HOME="/home/$ES_USER/elasticsearch-7.3.2"
PID=`ps aux | grep $ES_HOME | pidof java`
ps aux | grep $ES_HOME | pidof java > /dev/null
RESULT=$?
if [ 0 = $RESULT ]; then
echo "[`date --rfc-3339=seconds`] [WARN] Already running with pid($PID)."
else
echo "[`date --rfc-3339=seconds`] [INFO] Starting elasticsearch..."
${ES_HOME}/bin/elasticsearch -d -p ${ES_HOME}/elasticsearch.pid
fi
νλ‘μΈμ€λ₯Ό μ€νν λμλ μμλλ νλ‘μΈμ€κ° μ΄λ―Έ μ€νμ€μΈμ§λ₯Ό ps λͺ λ Ήμ΄λ₯Ό ν΅ν΄ νλ‘μΈμ€ μνλ₯Ό 체ν¬νμ¬ νλ‘μΈμ€ μμ΄λκ° μ‘΄μ¬νλμ§μ κ²°κ³Όμ λ°λΌ νλ‘μΈμ€λ₯Ό μ€νν΄μΌνλμ§ νλ¨ν μ μμ΅λλ€. μμ κ°μ΄ μ€ν μ€ν¬λ¦½νΈλ₯Ό μμ±νλ κ²½μ° ν¬λ‘ νμ ν΅ν΄μ μλ² λλ νλ‘μΈμ€κ° μμνμ§ λͺ»νλ μ΄μ λ‘ μ’ λ£λλλΌλ λ€μ μ€νλ μ μλλ‘ μ μ©ν μ μκ² λ©λλ€.
μλΌμ€ν±μμΉ μ’ λ£ μ€ν¬λ¦½νΈ
#!/bin/bash
ES_USER="ec2-user"
ES_HOME="/home/$ES_USER/elasticsearch-7.3.2"
PID=`ps aux | grep $ES_HOME | pidof java`
ps aux | grep $ES_HOME | pidof java > /dev/null
RESULT=$?
if [ 0 = $RESULT ]; then
echo "[`date --rfc-3339=seconds`] [INFO] Stopping elasticsearch..."
kill -15 $PID
sleep 3
ps aux | grep $ES_HOME | pidof java > /dev/null
RESULT=$?
if [ 0 = $RESULT ]; then
echo "[`date --rfc-3339=seconds`] [ERROR] Cannot stop elasticsearch"
else
echo "[`date --rfc-3339=seconds`] [INFO] Stopped elasticsearch."
fi
else
echo "[`date --rfc-3339=seconds`] [WARN] Elasticsearch not running."
fi
νλ‘μΈμ€λ₯Ό μ’ λ£λ λ¨μνκ² kill λͺ λ Ήμ΄μ ν¨κ» νλ‘μΈμ€μ λν μμ΄λλ₯Ό μ§μ νλ©΄ λ©λλ€. κ·Έλ¬λ, SIGTERM μκ·Έλμ 보λ΄λ νλ‘μΈμ€κ° μ μμ μΌλ‘ μ’ λ£λμ§ μμ μ μμΌλ―λ‘ kill λͺ λ Ήμ΄λ₯Ό μννκ³ λμ μ μ λκΈ°ν λ€μ νλ‘μΈμ€ μ€ν μνλ₯Ό λ€μ νλ² μ²΄ν¬νμ¬ μ λλ‘ μ’ λ£λμλμ§λ₯Ό 체ν¬νμμ΅λλ€. μ μ€ν¬λ¦½νΈλ₯Ό λ 보μνλ€λ©΄ μΌμ μκ°μ λκΈ°νλ κ²κ³Ό ν¨κ» Nλ² λ νλ‘μΈμ€ μ’ λ£λ₯Ό μννλλ‘ λ°λ³΅λ¬Έμ μ μ©ν΄λ³Ό μ μμ΅λλ€. μ λ νλ‘μΈμ€ μ’ λ£ μ€ν¬λ¦½νΈλ₯Ό μ€ννλ κ²μ μ¬μ©μμ μν λͺ μμ μΈ νμλΌκ³ μκ°νμ¬ νλ² λ§ μννκ³ κ²°κ³Όμ λ°λΌ νμΈν μ μλλ‘ λ©μμ§λ₯Ό μΆλ ₯νμμ΅λλ€.
μ€ν¬λ¦½νΈ μ£Όμμ¬ν
μλΌμ€ν±μμΉλ μ체μ μΌλ‘ μ€νμ€μΈ νλ‘μΈμ€ μμ΄λλ₯Ό νμΌλ‘ μμ±νλ νλΌλ―Έν° μ΅μ μ μ 곡νμ§λ§ μΌλΆ νλ‘μΈμ€λ μ§μνμ§ μμ μ μμ΅λλ€. κ·Έλμ nohup λͺ λ Ήμ΄λ₯Ό μννκ³ λμ echo $! λ₯Ό νΈμΆνμ¬ μ€νλ νλ‘μΈμ€μ λν μμ΄λλ₯Ό κ°μ Έμμ νμΌλ‘ κΈ°λ‘νκΈ°λ ν©λλ€. νλ‘μΈμ€ μμ΄λκ° μ μ₯λ νμΌμ ν΅ν΄μ νλ‘μΈμ€ μ¬λΆλ₯Ό νλ¨νκ² λλ©΄ νλ‘μΈμ€κ° μ€λ³΅μΌλ‘ μ€νλ μ μλ μ·¨μ½μ μ κ°μ§κ³ μμ΅λλ€.
λν, μ μ€ν¬λ¦½νΈμμλ pidof λͺ λ Ήμ΄λ‘ 컀맨λ κΈ°λ°μΌλ‘ νλ‘μΈμ€ μμ΄λλ₯Ό κ°μ Έμμ§λ§ 컀맨λ μ΄λ¦λ§μΌλ‘λ μ λλ‘ κ΅¬λΆν μ μμ΄μ μλμ κ°μ΄ grep κ³Ό awk λͺ λ Ήμ΄λ₯Ό ν΅ν΄ νλ‘μΈμ€ μμ΄λλ₯Ό μΆμΆν΄μΌν μ μμ΅λλ€. λ¨μΌ νλ‘μΈμ€λΌλ©΄ pidof λͺ λ Ήμ΄κ° κ°λ¨νμ§λ§ λ€μμ νλ‘μΈμ€λ‘ μ€ννλ μμ€ν μ΄λΌλ©΄ μ£Όμν΄μΌλ§ ν©λλ€.
# νΉμ νλ‘μΈμ€ μ°ΎκΈ°
ubuntu@ubuntu:~$ ps aux | grep '/home/ubuntu/q/l64/q -p 5000'
ubuntu 60379 0.0 0.2 298068 5584 ? Sl Jan30 0:04 /home/ubuntu/q/l64/q -p 5000
ubuntu 76497 0.0 0.0 6440 720 pts/0 S+ 13:51 0:00 grep --color=auto /home/ubuntu/q/l64/q -p 5000
# Grep λͺ
λ Ήμ΄λ μ μΈ
ubuntu@ubuntu:~$ ps aux | grep '/home/ubuntu/q/l64/q -p 5000' | grep -v grep
ubuntu 60379 0.0 0.2 298068 5584 ? Sl Jan30 0:04 /home/ubuntu/q/l64/q -p 5000
# 2λ²μ§Έ νλ‘μΈμ€ μμ΄λ μΆμΆ
ubuntu@ubuntu:~$ ps -ef | grep '/home/ubuntu/q/l64/q -p 5000' | grep -v grep | awk '{print $2}'
60379
ν¬λ‘ νμ μ¬μ©ν΄μ μλμΌλ‘ μ¬μμνλλ‘ μ€ν¬λ¦½νΈλ₯Ό μ£ΌκΈ°μ μΌλ‘ μ€νν λμλ 리λ μ€ λ°°ν¬νμ κΈ°λ³Έ μμ μ°¨μ΄λ‘ μΈν΄ μ¬μ©μμ νκ²½λ³μκ° μ λλ‘ λ±λ‘λμ§ μμ μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ°λΆν¬μ κ²½μ°μλ μλμ κ°μ΄ ν¬λ‘ νμ μ¬μ©ν λ bashλ₯Ό μ§μ νλκ² μ’μ΅λλ€.
crontab -e
SHELL=/bin/bash
@reboot /home/ubuntu/start.sh >> /home/ubuntu/start.log