Skip to main content

🖥️ Sử Dụng Screen Trong Linux

📋 Giới Thiệu

Screen là một công cụ mạnh mẽ cho phép bạn:

  • Tạo nhiều phiên terminal ảo
  • Chạy các tiến trình trong nền
  • Giữ các phiên làm việc khi ngắt kết nối SSH
  • Chia sẻ phiên làm việc với người khác

🛠️ Cài Đặt Screen

# Ubuntu/Debian
sudo apt update
sudo apt install screen

# CentOS/RHEL
sudo yum install screen

# Fedora
sudo dnf install screen

📝 Các Lệnh Cơ Bản

1. Tạo Phiên Screen Mới

# Tạo phiên mới với tên tùy chọn
screen -S session_name

# Ví dụ
screen -S backup

2. Quản Lý Phiên Screen

# Liệt kê các phiên đang chạy
screen -ls

# Kết quả có dạng:
# There are screens on:
# 12345.backup (Detached)
# 67890.monitoring (Attached)

3. Thoát và Kết Nối Lại

# Thoát khỏi phiên hiện tại (detach)
# Nhấn Ctrl + A, sau đó nhấn D

# Kết nối lại phiên đã thoát
screen -r session_name

# Kết nối lại phiên duy nhất đang chạy
screen -r

4. Kết Thúc Phiên Screen

# Từ bên trong phiên screen
exit

# Hoặc từ terminal khác
screen -X -S session_name quit

🚀 Ví Dụ Thực Tế

1. Chạy Backup Database Trong Nền

# Tạo phiên screen mới
screen -S db_backup

# Thực hiện backup
mysqldump -u root -p database_name > backup.sql

# Thoát phiên (Ctrl + A, D)

2. Giám Sát Log File

# Tạo phiên screen mới
screen -S log_monitor

# Theo dõi log
tail -f /var/log/syslog

# Thoát phiên (Ctrl + A, D)

⌨️ Phím Tắt Hữu Ích

Phím TắtChức Năng
Ctrl+a cTạo cửa sổ mới
Ctrl+a nChuyển đến cửa sổ tiếp theo
Ctrl+a pChuyển đến cửa sổ trước
Ctrl+a "Liệt kê và chọn cửa sổ
Ctrl+a AĐặt tên cho cửa sổ hiện tại
Ctrl+a dThoát phiên hiện tại
Ctrl+a ?Hiển thị trợ giúp

⚙️ Cấu Hình Screen

Tạo file ~/.screenrc để cấu hình Screen:

# Hiển thị thanh trạng thái
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'

# Tăng buffer size
defscrollback 10000

# Tắt màn hình chào
startup_message off

# Tự động detach khi mất kết nối
autodetach on

🔍 Xử Lý Sự Cố

1. Không Thể Tạo Screen Mới

# Kiểm tra quyền
ls -la $(which screen)

# Kiểm tra process
ps aux | grep screen

2. Không Thể Attach Screen

# Kiểm tra trạng thái screen
screen -ls

# Force detach nếu cần
screen -D -r session_name

3. Screen Bị Treo

# Kill screen session
screen -X -S session_name quit

# Hoặc kill process
pkill screen

📚 Tài Liệu Tham Khảo