Bagaimana cara membuat skrip python (termasuk dependensinya) berjalan saat startup dari mesin Ubuntu?

1

Yah, saya tahu bahwa untuk satu skrip pertanyaannya adalah hanya meletakkan file yang sesuai di direktori /etc/rc.local, kan? Tetapi, bagaimana jika skrip ini tergantung pada file lain (yaitu beberapa skrip dan beberapa file teks)? Apa yang harus saya lakukan untuk menghindari membuat folder ini berantakan?

pengguna88349
sumber
/etc/rc.localbukan direktori tetapi file sederhana.
Gilles Quenot
Baik. Tapi bagaimanapun pertanyaannya masih. Apa yang harus saya lakukan?
user88349

Jawaban:

2

Jika tergantung , maksud Anda menggunakan dan / atau memanggil mereka, itu tidak masalah . Anda bisa menambahkan baris ke bagian akhir file rc.local sebagai perintah untuk memanggil skrip utama dan seharusnya hanya berfungsi .

Ada alternatif untuk rc.local , minimal pada versi desktop. Anda dapat menggunakan Startup Applicationsaplikasi untuk menambahkan skrip Anda ke dalamnya. Perbedaan antara kedua metode, selain menambahkan versi CLI vs GUI adalah bahwa skrip rc.local dijalankan sebagai ROOT dan aplikasi startup sebagai pengguna Anda .


Sunting

Dari komentar, masalah Anda menjadi lebih jelas . Tampaknya skrip menggunakan jalur relatif untuk mengakses dependensi, yang saya duga bukan kode. Direktori kerja dari dua metode di atas adalah salah satu /root/atau /home/<user name/, dengan demikian dependensi tidak dimuat .

Perbaikan termudah adalah ke cdfolder sebelum memanggil skrip python. Salah satu dari ini harus bekerja: - Gunakan cd /home/..../.../ && python perdc_task.pysebagai perintah di salah satu dari kedua metode tersebut. - Jika itu tidak berhasil, buat skrip (yang .shharus dilakukan) yang memanggil perintah di atas dan memanggil skrip ini dalam 2 metode di atas.

Cara yang lebih elegan untuk melakukannya adalah - Lakukan cddari dalam skrip python dengan menentukan jalurnya secara terprogram - Atau Gunakan jalur di atas untuk mengakses dependensi dengan jalur absolut


Edit2

Ubuntu mungkin telah pindah dari rc.local mendukung pemula . Cobalah untuk melihat apakah menggunakan pemula seperti dalam pertanyaan ini cocok untuk Anda.

Karthik T
sumber
Saya lebih suka versi GUI. Sayangnya itu tidak berhasil untuk saya. Saya menggunakan perintah ini: python /home/.../.../.../perdc_task.py Ada ide?
user88349
salah satu dari metode ini harus bekerja, tetapi mereka tidak .. sepertinya ada sesuatu yang hilang .. apa maksudmu itu tidak bekerja? Cobalah untuk menulis log untuk melihat apakah itu mulai .. mungkinkah itu berjalan tetapi berhenti atau sesuatu?
Karthik T
coba python /home/.../.../.../perdc_task.py > /home/<your username>/Documents/perdc_task.logdan periksa apakah ada sesuatu yang ditulis dalam file log
Karthik T
Terima kasih atas jawaban anda. Namun, ada hal aneh yang terjadi. Skrip di atas tidak berjalan kecuali saya membuat CD sehingga direktori saat ini adalah tempat skrip berada. Jika saya melakukan itu, semuanya berfungsi dengan baik dan mencatat ditulis pada file log. Jika saya tidak melakukan itu, pesan kesalahan ditampilkan di terminal, namun tidak ada yang tertulis pada file log. Ada ide?
user88349
Saya mencobanya tetapi masih memiliki masalah. Sekarang skrip dieksekusi langsung melalui konsol (maksud saya, tanpa perlu melakukan cd sebelumnya), namun saya menghadapi masalah ketika saya menggunakan fitur aplikasi startup Ubuntu. Ada bantuan untuk itu?
user88349
1

Jika Anda telah cronmengaktifkan (yang seharusnya) ada @rebootperintah khusus yang berjalan saat startup. Saya tidak yakin ini bekerja pada sepatu bot dingin, tetapi dari apa yang saya lihat itu berhasil.

Jika berhasil, Anda cukup menulis skrip, plonk di beberapa direktori bersih dan terorganisir, kemudian panggil melalui cron.

Lihat: Di Sini dan Di Sini

Daniel Park
sumber