Ralat Unix CommandNotFound dalam Paramiko Exec_command
Apabila melaksanakan arahan Unix tertentu, seperti 'sesu,' melalui modul Paramiko exec_command Python, anda boleh menghadapi ralat "perintah tidak dijumpai". Isu ini timbul kerana kaedah exec_command biasanya tidak beroperasi dalam mod "log masuk", menyebabkan set pembolehubah persekitaran dan skrip permulaan yang berbeza diperoleh berbanding sesi SSH interaktif standard.
Penyelesaian Potensi:
1. Tentukan Laluan Penuh untuk Perintah:
Gunakan laluan penuh untuk arahan dalam argumen exec_command anda. Sebagai contoh, "ujian/bin/sesu" dan bukannya "ujian sesu." Anda boleh menentukan laluan penuh menggunakan arahan "mana" dalam sesi SSH interaktif.
2. Laraskan Skrip Permulaan:
Pastikan skrip permulaan (cth., .bash_profile) menetapkan pembolehubah persekitaran PATH secara seragam untuk kedua-dua sesi interaktif dan bukan interaktif.
3. Gunakan --login Suis:
Jalankan arahan menggunakan cangkerang log masuk dengan suis "--login", seperti "bash --login -c "sesu test"."
4. Ubah Suai Pembolehubah Persekitaran dalam Perintah:
Ubah suai pembolehubah persekitaran secara langsung dalam arahan itu sendiri. Dalam sistem Unix biasa, sintaks berikut digunakan: "PATH="$PATH;/path/to/sesu" && ujian sesu."
5. Paksa Peruntukan Terminal Pseudo (Tidak Disyorkan):
Dayakan peruntukan terminal pseudo untuk saluran exec menggunakan parameter get_pty=True. Walau bagaimanapun, pendekatan ini boleh membawa kepada hasil yang tidak dijangka.
Pertimbangan Tambahan:
Rujuk sumber berikut untuk maklumat lanjut:
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Unix CommandNotFound dalam Paramiko Exec_command Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!