Girişte tmux İçinde Otomatik Yeniden Başlatma ve Günlüklemeyle Bash Betiği Çalıştırma
🇹🇷 Arch Linux'ta tmux içinde Bash betiklerini otomatik başlatma, yeniden başlatma ve günlükleme rehberi.
Arch Linux’ta systemd olmadan girişte bir Bash betiğini tmux
içinde otomatik olarak başlatabilir ve şimdi de daha kolay izleme için çıktısını günlüğe kaydedebilirsiniz. Bu rehber şunları gösterir:
- Otomatik Bağlanma - hemen bağlanır.
- Arka Plan - ayrılmış olarak çalışır.
- Otomatik Yeniden Başlatma - betik çökerse yeniden başlatır.
- Günlükleme - çıktıyı bir dosyaya kaydeder.
Basit (Günlüklemesiz)
Adım 1: ~/tmux_simple.sh
Oluşturun
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
SESSION="fbses"
# Oturumun zaten var olup olmadığını kontrol et
tmux has-session -t $SESSION 2>/dev/null
if [ $? != 0 ]; then
# Oturum yok, oluştur ve Python betiğini çalıştır
tmux new-session -d -s $SESSION
tmux send-keys -t $SESSION "python3 /home/fb/autostart/myprogram/run.py" Enter
fi
# Oturuma bağlan
tmux attach -t $SESSION
Çalıştırılabilir yapın:
1
chmod +x ~/tmux_simple.sh
Adım 2: ~/.bash_profile
‘dan Çağırın
1
2
[[ -f ~/.bashrc ]] && . ~/.bashrc
/home/fb/tmux_simple.sh
Otomatik Yeniden Başlatma ve Günlükleme ile Otomatik Bağlanma
Adım 1: ~/tmux.sh
Oluşturun
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
SESSION="fbses"
SCRIPT="/home/fb/autostart/myprogram/run.py"
LOG="/home/fb/autostart/myprogram/run.log"
# Oturumun var olup olmadığını kontrol et
tmux has-session -t $SESSION 2>/dev/null
if [ $? != 0 ]; then
# Oturum oluştur ve Python betiğini yeniden başlatma döngüsü ve günlükleme ile çalıştır
tmux new-session -d -s $SESSION "while true; do python3 $SCRIPT >> $LOG 2>&1; echo 'Betik çöktü. 5s içinde yeniden başlatılıyor...' >> $LOG; sleep 5; done"
fi
# Otomatik olarak bağlan
tmux attach -t $SESSION
Çalıştırılabilir yapın:
1
chmod +x ~/tmux.sh
Adım 2: ~/.bash_profile
‘dan Çağırın
1
2
[[ -f ~/.bashrc ]] && . ~/.bashrc
/home/fb/tmux.sh
Sadece Arka Planda Otomatik Yeniden Başlatma ve Günlükleme ile
Adım 1: ~/tmux_bg.sh
Oluşturun
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
SESSION="fbses"
SCRIPT="/home/fb/autostart/myprogram/run.py"
LOG="/home/fb/autostart/myprogram/run.log"
# Oturumun var olup olmadığını kontrol et
tmux has-session -t $SESSION 2>/dev/null
if [ $? != 0 ]; then
# Oturum oluştur ve Python betiğini yeniden başlatma döngüsü ve günlükleme ile çalıştır
tmux new-session -d -s $SESSION "while true; do python3 $SCRIPT >> $LOG 2>&1; echo 'Betik çöktü. 5s içinde yeniden başlatılıyor...' >> $LOG; sleep 5; done"
fi
# Kullanıcıyı bilgilendir
echo "tmux oturumu '$SESSION' arka planda çalışıyor."
echo "Görüntülemek için 'tmux attach -t $SESSION' kullanın."
echo "Betik çıktısı $LOG dosyasına kaydediliyor"
Çalıştırılabilir yapın:
1
chmod +x ~/tmux_bg.sh
Adım 2: ~/.bash_profile
‘dan Çağırın
1
2
[[ -f ~/.bashrc ]] && . ~/.bashrc
/home/fb/tmux_bg.sh
tmux Oturumlarını Yönetme
- Oturumları listele:
1
tmux ls
- Manuel olarak bağlan:
1
tmux attach -t fbses
- Ayrıl (çalışmaya devam etsin):
1
Ctrl + b, sonra d
- Gerekirse oturumu sonlandır:
1
tmux kill-session -t fbses
- Günlüğü kontrol et:
1
tail -f /home/fb/autostart/myprogram/run.log
Hangi Sürümü Kullanmalısınız?
Basit (Günlüklemesiz) Hızlı testler veya küçük betikler için bunu kullanın. Sadece betiğin çalışmasını ve hemen görmeyi istediğinizde, çökme kurtarma veya günlükler olmadan iyidir.
Otomatik Yeniden Başlatma ve Günlükleme ile Otomatik Bağlanma Sürekli izlemek istediğiniz uzun süren betikler için en iyisi. Çökerse otomatik olarak yeniden başlatır ve her şeyin tam bir günlüğünü tutar.
Sadece Arka Planda Otomatik Yeniden Başlatma ve Günlükleme ile Girişte bir tmux penceresi açmadan çalışması gereken betikler için idealdir. Başsız sunucular veya arka plan görevleri için mükemmeldir, aynı zamanda yeniden başlatılabilir ve günlüğe kaydedilir.
İpucu: Tüm sürümler, kullanıcınız altında bir tmux oturumu oluşturur. Şunları kullanabilirsiniz:
1
tmux ls
sadece arka planda olanlar da dahil olmak üzere tüm oturumları görmek için ve:
1
tmux attach -t fbses
gerektiğinde manuel olarak bağlanmak için.
Bu şekilde, tekrarlanan girişlerde birden fazla oturum oluşturmadan betikleri güvenle yönetebilirsiniz.