Nohup không chạy được lệnh 'sh' không có tệp hoặc thư mục nào như vậy
2024-10-24 13:08:54
tin tức
tiyusaishi
Tiêu đề: Giải quyết vấn đề "lệnh chạy nohup không thành công: không thể tìm thấy tệp hoặc thư mục 'sh'".
Thân thể:
Khi sử dụng các hệ thống Linux hoặc Unix, đôi khi chúng ta cần sử dụng lệnh nohup để chạy các chương trình hoặc tập lệnh trong nền để đảm bảo rằng các chương trình tiếp tục chạy ngay cả khi thoát khỏi thiết bị đầu cuối. Tuy nhiên, đôi khi chúng ta có thể gặp phải các lỗi như "lệnh nohup ran không thành công: không thể tìm thấy tệp hoặc thư mục 'sh'". Bài viết này sẽ giúp bạn hiểu nguyên nhân của lỗi này và đưa ra giải pháp.
1. Nguyên nhân sai sót
Khi bạn thấy lỗi "lệnh nohup ran không thành công: không thể tìm thấy tệp hoặc thư mục 'sh'", điều đó thường có nghĩa là hệ thống không thể tìm thấy đường dẫn đến sh (Bourneshell). Có một số lý do có thể dẫn đến lỗi này:
1. Biến môi trường PATH được đặt không chính xác, dẫn đến hệ thống không thể tìm thấy vị trí của sh.
2. Hệ thống của bạn thực sự chưa cài đặt SH, hoặc đường dẫn cài đặt khác với đường dẫn mặc định.
Thứ hai, giải pháp
Các bước để giải quyết vấn đề này như sau:
1. Xác nhận xem SH đã được cài đặt trên hệ thống của bạn chưa. Nhập lệnh sau vào thiết bị đầu cuối:
trong đó
Nếu đường dẫn của SH được trả lại, SH đã được cài đặt trên hệ thống của bạn. Nếu không có thông tin nào được trả về, sh có thể không được cài đặt hoặc không trong biến môi trường PATH của bạn.
2. Nếu sh đã được cài đặt trên hệ thống của bạn, nhưng không có trong biến môi trường PATH, bạn có thể sử dụng đường dẫn đầy đủ để chạy sh. Ví dụ: giả sử sh được cài đặt trong thư mục /bin, bạn có thể chạy sh bằng lệnh sau:
nohup/bin/shyour_script.sh&
3. Nếu SH không được cài đặt trên hệ thống của bạn, bạn cần phải cài đặt nó. Trên hầu hết các hệ thống Linux, bạn có thể sử dụng trình quản lý gói để cài đặt nó. Ví dụ: trên Ubuntu, bạn có thể sử dụng lệnh apt-get để cài đặt:
sudoapt-getinstallcoreutils
Gói coreutils chứa sh. Sau khi cài đặt hoàn tất, bạn có thể thử lại để chạy chương trình hoặc tập lệnh của mình bằng lệnh nohup.
4. Nếu bạn không chắc chắn nơi để cài đặt sh, bạn có thể sử dụng lệnh find để tìm nó. Nhập lệnh sau vào thiết bị đầu cuối:
tìm/-namesh2>/dev/null
Thao tác này sẽ trả về tất cả các đường dẫn tệp có tên sh. Bạn có thể sử dụng một trong những đường dẫn này để chạy chương trình hoặc tập lệnh của mình.
3. Biện pháp phòng ngừa
1. Đảm bảo rằng bạn đang sử dụng đúng shell khi sử dụng lệnh nohup. Trong khi hầu hết các hệ thống Linux và Unix hỗ trợ sh, một số hệ thống có thể sử dụng các shell khác (ví dụ: bash, zsh, v.v.) theo mặc định. Bạn có thể xem shell nào bạn hiện đang sử dụng bằng cách nhập echo$SHELL.
2. Khi sử dụng lệnh nohup, tốt nhất là chuyển hướng đầu ra sang một tệp để ngăn thiết bị đầu cuối mất thông tin đầu ra sau khi đóng. Ví dụ: bạn có thể sử dụng lệnh sau để chuyển hướng đầu ra đến tệp có tên output.txt:
nohup/bin/shyour_script.sh>output.txt&
Tóm tắt: Trên đây là các bước và biện pháp phòng ngừa để giải quyết vấn đề "nohup không chạy được lệnh: không thể tìm thấy tệp hoặc thư mục 'sh'". Hy vọng bài viết này hữu ích cho bạn. Nếu bạn có thêm bất kỳ câu hỏi nào, xin vui lòng hỏi tôi.