Email Doanh NghiệpSSLFirewall Anti DDoSTối ưu tốc độ website

NỘI DUNG

Banner blog lễ 30.4 và 1.5

Lệnh disown trong Linux và 5 trường hợp sử dụng phổ biến

Hưng Nguyễn

Đã kiểm duyệt nội dung

Ngày đăng:19/05/2025
Lượt xem

Đánh giá

5/5 - (1 bình chọn)

lệnh disown là lệnh tích hợp trong Bash giúp tách tiến trình khỏi shell hiện tại để tránh bị chấm dứt khi đóng terminal. Đây là giải pháp hiệu quả nếu bạn cần đảm bảo các tiến trình quan trọng vẫn tiếp tục chạy nền kể cả sau khi logout. Bài viết sẽ giúp bạn hiểu rõ lệnh disown, cú pháp sử dụng, các ví dụ thực tế và những lưu ý cần nắm để tránh sai sót. Ngoài ra, bạn cũng sẽ tìm thấy thông tin về dịch vụ lưu trữ tốc độ cao từ Vietnix và phần FAQ tổng hợp các câu hỏi phổ biến nhất.

Điểm chính cần nắm

  • Lệnh disown trong Linux là gì?: Giới thiệu khái quát về chức năng và mục đích sử dụng lệnh disown trong Linux.
  • Cú pháp của lệnh disown: Trình bày cú pháp cơ bản và các tùy chọn phổ biến khi dùng lệnh disown.
  • 5 ví dụ về cách sử dụng lệnh disown trong Linux: Minh họa các trường hợp thực tế để áp dụng lệnh disown hiệu quả trong quản lý tiến trình.
  • Lưu ý quan trọng khi sử dụng lệnh disown: Các điểm cần chú ý để tránh lỗi và đảm bảo sử dụng lệnh disown đúng cách.
  • Vietnix – Giải pháp lưu trữ hiệu suất cao, tối ưu cho mọi websit: Giới thiệu dịch vụ lưu trữ hiệu suất cao của Vietnix hỗ trợ tốc độ và bảo mật cho website.
  • FAQ: Tổng hợp câu hỏi thường gặp và giải đáp chi tiết về lệnh disown trong Linux.

Lệnh disown trong Linux là gì?

Lệnh disown trong Linux là một lệnh tích hợp trong shell dùng để loại bỏ các tiến trình (jobs) khỏi bảng quản lý tiến trình của shell hiện tại. Khi sử dụng disown, shell sẽ không gửi tín hiệu SIGHUP (signal hang up) đến tiến trình đó khi người dùng đăng xuất hoặc đóng terminal, nhờ vậy tiến trình vẫn tiếp tục chạy nền mà không bị gián đoạn. Tuy nhiên, khi bạn sử dụng disown, bạn có thể đảm bảo rằng các tiến trình quan trọng vẫn tiếp tục chạy trong nền, ngay cả sau khi bạn thoát khỏi terminal hoặc đăng xuất khỏi phiên làm việc.

Lệnh disown là lệnh trong shell dùng để loại bỏ các tiến trình (jobs) khỏi bảng quản lý tiến trình của shell hiện tại.
Lệnh disown là lệnh trong shell dùng để loại bỏ các tiến trình (jobs) khỏi bảng quản lý tiến trình của shell hiện tại

Cú pháp của lệnh disown

Cú pháp đơn giản

disown [options] jobID1 jobID2 … jobIDN

Trong đó:

  • [option]: Các tham số tùy chọn để thay đổi cách hoạt động của lệnh.
  • [jobID1 jobID2 … jobIDN]: Các ID của tiến trình (job) cần loại bỏ khỏi bảng quản lý, thường được viết dưới dạng %1, %2

Tùy chọn phổ biến của lệnh disown

Tùy chọnÝ nghĩa
-hĐánh dấu job không nhận tín hiệu SIGHUP nhưng vẫn giữ trong bảng quản lý
-aLoại bỏ tất cả các job trong bảng quản lý
-rLoại bỏ chỉ các job đang chạy khỏi bảng quản lý
Tùy chọn phổ biến của lệnh disown

Xem các tiến trình đang chạy nền

Trước khi sử dụng disown, bạn cần xác định các job hiện đang chạy trong nền của phiên làm việc shell. Ví dụ, bạn có thể khởi chạy một vài lệnh nền như sau:

$ cat /dev/random > /dev/null &
$ ping google.com > /dev/null &
# Sau đó, sử dụng lệnh jobs -l để liệt kê tất cả các job:
$ jobs -l

Kết quả mẫu:

[1] 55899
[2] 55900
[1]- 55899 Running                 cat /dev/random > /dev/null &
[2]+ 55900 Running                 ping google.com > /dev/null &
image 194
Lệnh disown trong Linux và 5 trường hợp sử dụng phổ biến 25

Trong đó:

  • Số trong ngoặc vuông là số thứ tự của job.
  • PID (Process ID) đi kèm giúp bạn quản lý tiến trình nếu cần.
  • Dấu + chỉ job hiện tại, - là job trước đó.

Việc xác định job là bước quan trọng trước khi bạn áp dụng disown để quản lý hoặc gỡ bỏ các job khỏi shell.

Loại bỏ tất cả job khỏi bảng job

Nếu bạn muốn xóa toàn bộ job khỏi bảng job của shell (ví dụ sau khi đã khởi chạy nhiều tác vụ nền và không muốn shell theo dõi nữa), bạn có thể dùng tùy chọn -a:

$ disown -a

Lệnh này sẽ gỡ toàn bộ job ra khỏi sự quản lý của shell hiện tại. Các tiến trình này sẽ tiếp tục chạy trong nền và không bị ảnh hưởng nếu bạn đóng terminal.

iconLưu ý

Sau khi dùng disown, bạn không thể quản lý job bằng jobs, fg, hoặc bg nữa. Muốn dừng tiến trình, bạn sẽ phải dùng kill kèm PID.

image 195
Lệnh disown trong Linux và 5 trường hợp sử dụng phổ biến 26

Loại bỏ một job cụ thể

Trong trường hợp bạn chỉ muốn gỡ bỏ một job nhất định khỏi bảng job, bạn có thể chỉ định job đó bằng ID hoặc số thứ tự job (%n).

Ví dụ: Giả sử lệnh jobs -l cho ra kết quả như sau:

[1]- 13026 Running    cat /dev/random > /dev/null &
[2]+ 13027 Running    ping google.com > /dev/null &

Bạn muốn chỉ loại bỏ job ping (job số 2):

$ disown %2

Hoặc dùng PID trực tiếp (nếu biết):

$ disown 13027

Lúc này, job tương ứng sẽ được gỡ khỏi bảng job, không còn hiển thị khi chạy jobs.

image 196
Lệnh disown trong Linux và 5 trường hợp sử dụng phổ biến 27

Loại bỏ các job đang chạy

Nếu bạn muốn chỉ loại bỏ các job đang thực sự “Running”, mà không đụng tới các job đã “Stopped” (tạm dừng), dùng tùy chọn -r:

$ disown -r

Tùy chọn này hữu ích khi bạn có nhiều job và chỉ muốn gỡ các job đang hoạt động, giúp bạn giữ lại các job dừng để xử lý sau.

image 197
Lệnh disown trong Linux và 5 trường hợp sử dụng phổ biến 28

Đảm bảo tiến trình tiếp tục chạy sau khi logout

Một trong những ứng dụng quan trọng nhất của disown là đảm bảo các tiến trình quan trọng không bị dừng lại khi bạn thoát khỏi phiên terminal.

Ví dụ: Bạn chạy một tiến trình ghi log hoặc backup dữ liệu trong nền:

$ ./backup.sh &

Để chắc chắn tiến trình này vẫn tiếp tục chạy khi bạn logout, hãy gỡ nó khỏi shell bằng:

$ disown -h %1

Tùy chọn -h sẽ đánh dấu job là không nhận tín hiệu SIGHUP (signal gửi khi bạn logout hoặc đóng terminal). Sau đó, bạn có thể thoát phiên làm việc một cách an toàn:

$ exit

iconLưu ý

Tiến trình sẽ không bị dừng, nhưng bạn cũng không thể dùng jobs để xem lại. Để kiểm tra, dùng ps hoặc top theo PID.

Lưu ý quan trọng khi sử dụng lệnh disown

  • Không thể dùng fg, bg, hoặc jobs để quản lý job sau khi đã disown.
  • disown không dừng tiến trình, chỉ gỡ khỏi quản lý của shell.
  • Nên kết hợp disown với nohup để đảm bảo tiến trình tiếp tục chạy sau khi logout.
  • Không cần disown nếu dùng screen hoặc tmux.
  • Cẩn thận khi chỉ dùng disown không có tham số – mặc định sẽ áp dụng với job hiện tại.
  • Tránh dùng disown với các tiến trình yêu cầu tương tác người dùng.
  • Cần xác định đúng Job ID hoặc PID trước khi sử dụng disown.

Vietnix – Giải pháp lưu trữ hiệu suất cao, tối ưu cho mọi website

Vietnix là nhà cung cấp dịch vụ VPShosting tốc độ cao, chuyên mang đến giải pháp lưu trữ tối ưu với hiệu suất ổn định, bảo mật tiên tiến và tốc độ vượt trội. Hệ thống máy chủ hiện đại đặt tại các trung tâm dữ liệu tiêu chuẩn quốc tế, được đội ngũ kỹ thuật nhiều năm kinh nghiệm vận hành, đảm bảo website của bạn luôn hoạt động ổn định, an toàn và nhanh chóng.

Bên cạnh chất lượng dịch vụ, Vietnix còn nổi bật với chế độ hỗ trợ kỹ thuật 24/7, luôn sẵn sàng đồng hành cùng bạn trong mọi tình huống. Từ cá nhân, doanh nghiệp nhỏ đến hệ thống lớn, dịch vụ của Vietnix đều phù hợp để tối ưu hiệu quả hoạt động và nâng cao trải nghiệm người dùng.

Thông tin liên hệ:

  • Website: https://vietnix.vn/
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, TP HCM.

Câu hỏi thường gặp

Lệnh disown trong Linux dùng để làm gì?

Lệnh disown được sử dụng để xóa một hoặc nhiều job khỏi bảng job của shell, giúp các tiến trình đó không bị ảnh hưởng khi đóng terminal hoặc logout.

Khi nào nên sử dụng disown thay vì nohup?

Dùng disown khi bạn đã chạy tiến trình và muốn tách nó khỏi shell hiện tại mà không cần dừng lại để chạy lại với nohup.

Sự khác biệt giữa disownbg/fg là gì?

bgfg dùng để đưa tiến trình chạy nền hoặc tiền cảnh, còn disown là để tách hẳn tiến trình khỏi shell, không còn liên kết với session.

Cách kiểm tra các job hiện tại để dùng với disown?

Sử dụng lệnh jobs -l để hiển thị danh sách job đang chạy kèm PID và trạng thái.

disown -adisown -r khác nhau như thế nào?

-a loại bỏ tất cả job khỏi bảng job, còn -r chỉ loại bỏ các job đang chạy (Running).

disown có hoạt động trên tất cả shell không?

disown là built-in của Bash và Zsh, không khả dụng trên mọi shell như sh hoặc Dash.

Có cách nào dùng disown trong script bash để tránh mất job khi chạy qua SSH không?

Có, bạn có thể dùng command & disown %1 trong script để tiến trình không bị dừng khi kết nối SSH bị ngắt.

Có thể sử dụng disown trong hệ thống CentOS 7 mặc định không?

Có, nếu bạn sử dụng Bash làm shell mặc định. Nếu dùng shell khác, cần kiểm tra hỗ trợ cụ thể.

Dùng disown trong môi trường server production có an toàn không?

Có, nhưng bạn cần cẩn thận vì sau khi disown, shell không còn quản lý tiến trình – phải theo dõi PID thủ công.

Lời kết

Khi sử dụng đúng cách, lệnh disown giúp quản lý tiến trình linh hoạt và hạn chế gián đoạn không mong muốn trên hệ thống Linux. Nếu bạn đang vận hành các dịch vụ nền hoặc cần giữ tiến trình sống sót sau khi logout, đây là công cụ đáng tin cậy. Nếu bạn có bất kỳ thắc mắc nào về lệnh disown, quản lý job trong shell, hoặc cần hỗ trợ kỹ thuật, hãy để lại bình luận bên dưới. Đừng quên khám phá thêm các bài viết khác trên blog để tối ưu quá trình sử dụng Linux hiệu quả hơn.

Mọi người cũng xem:

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi sinh nhật
Nhanh tay, số lượng có hạn!
17/05/2025 - 22/06/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG