Giả sử gedit
là chương trình bạn muốn chạy tách ra (hay còn gọi là "disained", "disentangled", "decoupling"). Có nhiều cách khác nhau tùy thuộc vào những gì bạn muốn làm chính xác:
Chương trình đã chạy
Từ chối:
disown -h
là cách để đi nếu bạn muốn làm điều đó với một chương trình đã chạy (tức là nếu bạn quên nohup
nó). Trước tiên bạn phải dừng nó bằng Ctrl+ Z. Sau đó, bạn có thể đặt trong nền bằng cách sử dụng bg [jobId]
(ví dụ bg 1
). Bạn nhận được một danh sách các công việc đang chạy với jobId của họ bằng cách sử dụng jobs
. Sau đó, bạn có thể tách nó từ thiết bị đầu cuối bằng cách sử dụng disown -h %[jobId]
. Ví dụ phiên thiết bị đầu cuối:
$ gedit
^Z
[1]+ Stopped gedit
$ jobs
[1]+ Stopped gedit
$ bg 1
[1]+ gedit &
$ disown -h %1
$ exit
Chương trình chưa bắt đầu
không
nohup
không phải lúc nào cũng có mặt trên tất cả các máy. Nếu bạn biết bạn muốn tách riêng trước, bạn sẽ sử dụng:
nohup gedit &
Có thể bạn cũng sẽ muốn chuyển hướng đầu ra shell và chương trình của bạn là nguồn đầu vào giả, vì vậy : nohup ./myprogram > foo.out 2> bar.err < /dev/null &
. Bạn sẽ muốn chuyển hướng đầu ra để không bị làm phiền bởi nó hoặc sử dụng nó sau này. Đầu vào null có thể giúp ngăn chặn những cú hích trong ssh như vậy.
Subshell:
Bạn có thể đạt được hiệu quả tương tự bằng cách
$ (geany >/dev/null 2>&1 &)
Các dấu ngoặc mở một lớp con mới để chạy gedit. >/dev/null 2>&1
Chuyển hướng đầu ra của vỏ đến hư không (triệt tiêu đầu ra). Và &
cuối cùng đặt quá trình trong nền.
Ghép kênh đầu cuối
Ngoài ra ghép kênh đầu cuối bằng màn hình hoặc byobu . Về cơ bản, bạn chạy chương trình trong một thiết bị đầu cuối của riêng mình. Tôi thực sự có thể giới thiệu byobu vì những lý do khác. Dưới đây là danh sách các phím tắt boybu có thể có ích cho các bước đầu tiên của bạn:
Hữu ích:
- F2 Tạo một cửa sổ mới
- F3 Di chuyển đến cửa sổ tiếp theo
- F4 Di chuyển đến cửa sổ trước
- F6 Tách khỏi phiên và đăng xuất
- Shift-F6 Tách khỏi phiên, nhưng không đăng xuất
- F7 Vào chế độ cuộn / tìm kiếm
- Ctrl-F5 Kết nối lại bất kỳ ổ cắm hoặc đại lý SSH / GPG
Ít hữu ích:
- Shift-F2 Chia màn hình theo chiều ngang
- Ctrl-F2 Chia màn hình theo chiều dọc
- Shift-F3 Chuyển trọng tâm sang phần tiếp theo
- Shift-F4 Chuyển trọng tâm sang phần tách trước
- Shift-F5 Thu gọn tất cả các phần tách
- F5 Làm mới tất cả các thông báo trạng thái
- F8 Đổi tên cửa sổ hiện tại
- F9 Khởi chạy Menu Cấu hình Byobu
- F12 Khóa thoát của màn hình GNU
- Alt-Pageup Cuộn qua lịch sử của cửa sổ này
- Alt-Pagedown Di chuyển về phía trước qua lịch sử của cửa sổ này
- Ctrl-a-! Bật hoặc tắt tất cả các phím bấm của Byobu
Daemon 'tại' và những người khác
at
là một công cụ nhỏ hữu ích để chạy lệnh tại thời điểm đã lên lịch. Nó có thể được 'sử dụng sai' để tách lệnh ra khỏi trình bao:
echo './myprogram myoption1 myoption2' | at now
Ngoài ra, bạn có thể xem xét setsid
và start-stop-daemon
, nhưng các phương pháp khác nên đủ.