Tại sao tôi không thể thấy công việc của wget wget khi tôi thực hiện nó trong nền?


8

Tôi sử dụng wgetlệnh trong nền như thế này

wget -bq

và nó in

Tiếp tục trong nền, pid 31754.

Nhưng khi tôi gõ lệnh jobs, tôi không thấy công việc của mình (mặc dù quá trình tải xuống chưa kết thúc).


2
Bạn có thể thấy nó vớips -p 31754
pLumo

Jjobschỉ hoạt động đối với điều khiển công việc shell (này) (cụ thể là &chú thích, ctrl-z hoặc bgcommamd). Danh sách quy trình chung ( ps -asẽ hiển thị)
eckes

Câu trả lời:


19

Khi sử dụng wgetvới -bhoặc --backgroundtự đặt vào nền bằng cách tách rời khỏi lớp vỏ hiện tại ( bằng cách loại bỏ một tiến trình con và chấm dứt cha mẹ ). Vì nó không phải là cái vỏ đặt nó dưới nền như một công việc không đồng bộ, nên nó sẽ không hiển thị như một công việc khi bạn sử dụng jobs.

Để chạy wgetnhư một công việc không đồng bộ (nền) trong trình bao, hãy sử dụng

wget ... URL &

Nếu bạn làm điều này, bạn cũng có thể muốn chuyển hướng đầu ra sang một số tệp ( wgettự động với -b) hoặc loại bỏ nó bằng cách chuyển hướng đến /dev/null, hoặc sử dụng -qhoặc --quiet.


1
nó cho một đứa trẻ và cha mẹ thoát ra
user2497

@ user2497 Có, xem câu trả lời cập nhật.
Kusalananda

6

Bởi vì nó đặt nó trong nền. Sử dụng &để nói với bash để đặt nó vào nền và đưa nó vào danh sách công việc của bash.

Bối cảnh và danh sách kiểm soát công việc không giống nhau. Bash đặt tất cả các quy trình nền của nó vào danh sách kiểm soát công việc của nó (theo mặc định), nhưng các quy trình có thể được làm nền mà không được đưa vào danh sách. Chỉ bash mới có thể đưa công việc vào danh sách của nó.

Có thể có những lợi thế cho -bgtùy chọn (tôi không biết gì). Ví dụ sshtùy chọn nền, đặt nó vào nền sau khi yêu cầu mật khẩu.


3
Đó là -bq, tức là -b-qkhông -bg.
Kusalananda

2

Quá trình với pid 31754 tồn tại; nếu bạn gõ ps -e |grep 31754 nhưng vì nó không phải là một công việc có thể được chuyển sang tiền cảnh một lần nữa, nó không được hiển thị bởi lệnh jobs. wget -bqtự động gửi đầu ra đến nền mà không có tùy chọn để di chuyển nó về phía trước một lần nữa.


pscó một -ptùy chọn có thể được sử dụng để truy vấn một PID cụ thể hoặc có thể sử dụng một tùy chọn pgrep wget.
Kusalananda

0

Tôi thường sử dụng tail wget-logđể xem một vài dòng cuối cùng của nhật ký do đó cho tôi ý tưởng về trạng thái tải xuống.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.