Di bawah ini adalah kode saya. Saya menggunakan crontab untuk autostart, tetapi semuanya tidak berfungsi seperti yang saya inginkan. Tujuannya adalah bahwa setelah memulai raspberry, terminal akan terbuka, dan program akan berjalan di dalamnya sehingga ketika Anda mengetik "bye" program berakhir (yang sudah saya miliki).

import os
import sys
import subprocess
if os.geteuid() == 0:
    while True:
        file = open("here is my file path")
        print(file.read())
        my_input = input("Do you want to close this program? Type bye if yes")
        if my_input== 'bye':
            print("bye")
            break
else:
    subprocess.call(['sudo', 'python3'] + sys.argv)

Bagaimana cara mengubah kode agar setelah reboot berfungsi dan terlihat di terminal?

0
SomeBeginner 7 Mei 2021, 10:25

1 menjawab

Jawaban Terbaik

Menggunakan layanan daemon mungkin akan lebih tepat daripada "cron". tetapi itu tidak masalah karena skrip Anda memeriksa apakah pengguna adalah root ( geteuid() ) dan mencoba melakukan sudo jika ini tidak terjadi, jadi sudo hanya akan gagal karena skrip tidak memiliki hak. Jika skrip Anda memiliki uid pengguna standar, dan dijalankan oleh root, maka Anda harus membuat panggilan ke seteuid(0), untuk mengatur hak root

0
Jerome Favrou 9 Mei 2021, 16:29