Nohup không chạy lệnh 'xuất' không có tệp hoặc thư mục nào như vậy
2024-10-28 16:09:25
tin tức
tiyusaishi
Tiêu đề: Giải quyết vấn đề "NohupFailedTorunCommand 'Export': Không có tệp hoặc thư mục như vậy".
Trong hệ điều hành Linux hoặc Unix, bạn có thể gặp các lỗi như "nohupfailedtoruncommand'export': không có tệp hoặc thư mục như vậy". Lỗi này thường xảy ra khi bạn cố gắng chạy tập lệnh có chứa lệnh xuất bằng lệnh nohup. Hãy cùng khám phá nguyên nhân và giải pháp cho vấn đề này.
1. Bối cảnh của vấn đề
Khi bạn chạy tập lệnh trong nền bằng lệnh nohup, bạn có thể gặp lỗi trên nếu tập lệnh chứa lệnh xuất. Điều này là do lệnh nohup sẽ chạy tập lệnh trong một subshell mới và subshell này sẽ không nhận ra lệnh export, dẫn đến lỗi.
Thứ hai, giải pháp
Giải pháp cho vấn đề này phụ thuộc chủ yếu vào nhu cầu cụ thể của bạn. Dưới đây là hai giải pháp khả thi:
1. Di chuyển lệnh xuất lên đầu tập lệnh: Ở đầu tập lệnh, đặt tất cả các lệnh xuất lại với nhau để thực thi. Bằng cách này, khi tập lệnh bắt đầu chạy, các biến môi trường được đặt trong shell chính thay vì trong child shell. Chẳng hạn:
''Ầm ầm
!/bin/bash
exportPATH = / usr / local / bin: $PATH
Các lệnh khác...
```
Khi các biến môi trường được đặt theo cách này, chúng được xác định chính xác bất kể bạn sử dụng nohup hay chạy tập lệnh ở nền trước.
2. Sử dụng nguồn hoặc . Lệnh: Nếu bạn cần đặt các biến môi trường trong một subshell, bạn có thể sử dụng source hoặc . lệnh để chạy tập lệnh có chứa lệnh xuất. Bằng cách này, tập lệnh được thực thi trong shell hiện tại chứ không phải trong subshell. Chẳng hạn:
''Ầm ầm
nguồn/đường dẫn/đến/của bạn/script.sh
```
Hoặc:
''Ầm ầm
./path/to/your/script.sh
```
Bằng cách này, bạn có thể đặt các biến môi trường một cách chính xác trong subshell và tránh các lỗi trên.
3. Biện pháp phòng ngừa
1. Đảm bảo tập lệnh của bạn có quyền thực thi. Bạn có thể sử dụng lệnh chmod để thêm quyền thực thi vào tập lệnh, ví dụ: :chmod+xscript.sh.
2. Đảm bảo đường dẫn và tên tệp trong tập lệnh là chính xác để tránh các lỗi khác.
3. Khi sử dụng lệnh nohup, đầu ra có thể được chuyển hướng đến một tệp để bạn có thể thấy đầu ra của quá trình đang chạy trong nền. Ví dụ: nohupcommand.sh>output.log2>&1&.
Thứ tư, tóm tắt
Với giải pháp trên, bạn sẽ có thể giải quyết vấn đề "nohupfailedtoruncommand 'export': không có tệp hoặc thư mục cho tệp này". Chọn giải pháp phù hợp với nhu cầu cụ thể của bạn và chú ý đến những điều liên quan để đảm bảo rằng tập lệnh của bạn chạy trơn tru. Nếu bạn gặp thêm vấn đề hoặc cần hỗ trợ thêm, vui lòng tìm kiếm sự hỗ trợ.