树莓派开机不输入密码自动运行程序

要让树莓派开机后自动登录而无需输入密码,你需要做以下几个步骤:

  1. 修改 lightdm 配置文件:
    打开终端并编辑 lightdm 配置文件 /etc/lightdm/lightdm.conf

    1
    sudo nano /etc/lightdm/lightdm.conf

    [SeatDefaults] 部分添加以下行:

    1
    2
    autologin-user=pi
    autologin-user-timeout=0

    autologin-user 替换为你的用户名(默认是 pi),这将使树莓派使用指定的用户自动登录。

  2. 设置自动登录用户的密码(如果尚未设置):
    如果你的用户没有设置密码,你需要先设置一个密码:

    1
    sudo passwd pi

    输入两次你想要设置的密码。

  3. 保存并重启树莓派:
    nano 编辑器中按下 Ctrl + X,然后输入 Y 保存修改。重启树莓派以使修改生效:

    1
    sudo reboot

树莓派将在开机后自动登录指定的用户,并无需输入密码。请注意,这样设置自动登录会减少系统的安全性,因为任何人都可以访问指定的用户帐户。如果你担心安全问题,请谨慎使用自动登录功能。

==如果在 /etc/lightdm/lightdm.conf 文件中没有找到 [SeatDefaults] 部分,可能是因为树莓派默认使用了不同的显示管理器(Display Manager),如 raspi-config 中的 lightdmraspi-config 中的 xdm。==

在这种情况下,你可以尝试修改 raspi-config 中的配置文件 /etc/lightdm/lightdm.conf

打开终端并编辑 /etc/lightdm/lightdm.conf 文件:

1
sudo nano /etc/lightdm/lightdm.conf

lightdm 配置文件中添加以下行:

1
2
3
[Seat:*]
autologin-user=pi
autologin-user-timeout=0

autologin-user 替换为你的用户名(默认是 pi)。然后保存修改(Ctrl + X,然后输入 Y)。

重启树莓派以使修改生效:

1
sudo reboot

现在,树莓派应该会在开机后自动登录指定的用户,并无需输入密码。请注意,如果你使用不同的显示管理器,可能需要在相应的配置文件中进行类似的设置。

要让树莓派开机后自动运行指定的Python文件

方法一

要让树莓派开机后自动运行指定的Python文件,您可以使用rc.local文件或者使用systemd服务。以下是两种方法的说明:

方法一:使用rc.local(适用于旧版本的树莓派操作系统)

  1. 打开rc.local文件:使用以下命令以编辑模式打开rc.local文件。
1
sudo nano /etc/rc.local
  1. exit 0之前添加运行Python文件的命令。例如,如果要运行名为example.py的Python文件,添加以下行:
1
python3 /path/to/your/example.py &

确保替换/path/to/your/example.py为您Python文件的实际路径。&符号表示在后台运行该命令。

  1. 保存并关闭文件:按下Ctrl + X,然后按Y确认保存修改,最后按Enter关闭编辑器。

方法二:使用systemd服务(推荐)

  1. 创建一个新的service文件:使用以下命令创建一个新的service文件。
1
sudo nano /etc/systemd/system/my_python_script.service
  1. 在该文件中添加以下内容(替换相应的信息):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=My Python Script Service
After=network.target

[Service]
ExecStart=/usr/bin/python3 /path/to/your/example.py
WorkingDirectory=/path/to/your/
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

确保替换/path/to/your/example.py/path/to/your/为正确的Python文件路径和工作目录。

  1. 保存并关闭文件:按下Ctrl + X,然后按Y确认保存修改,最后按Enter关闭编辑器。

  2. 重新加载systemd:使用以下命令重新加载systemd服务。

1
sudo systemctl daemon-reload
  1. 启用和启动服务:使用以下命令启用并启动您的新服务。
1
2
sudo systemctl enable my_python_script.service
sudo systemctl start my_python_script.service

现在,树莓派将在开机时自动运行您指定的Python文件。请注意,使用systemd服务的方法更加现代和推荐,因为rc.local方法在某些最新版本的树莓派操作系统中可能已不再使用。

方法二

要让树莓派开机后自动运行指定的Python文件,您需要创建一个名为/etc/rc.local的文件。然后,在文件中添加以下行:

1
python /path/to/python/file

其中,/path/to/python/file是Python文件的路径。例如,如果Python文件位于/home/pi/my_script.py,则您需要添加以下行:

1
python /home/pi/my_script.py

保存文件,然后重启树莓派。树莓派重启后,Python文件将自动运行。

以下是一些注意事项:

  • 确保Python文件具有可执行权限。您可以使用以下命令来设置权限:
1
chmod +x /path/to/python/file
  • 如果Python文件需要访问任何系统资源,例如文件或设备,您需要在文件中添加相应的权限。
  • 如果您想在树莓派开机后延迟运行Python文件,您可以使用sleep命令。例如,要让Python文件在树莓派开机后10秒钟后运行,您可以添加以下行:
1
2
sleep 10
python /path/to/python/file

方法三

要让树莓派在开机时自动运行一个Python脚本(例如 keystart.py),可以使用rc.localsystemd服务来实现。在这里,我将向您展示如何使用systemd服务来实现开机自动启动。

以下是使用systemd服务的步骤:

  1. 创建一个启动脚本:
    首先,您需要创建一个用于启动keystart.py的脚本。创建一个名为 keystart.sh 的文件,其内容类似于以下内容:

    1
    2
    3
    #!/bin/bash
    cd /path/to/your/python/script/
    python3 keystart.py

    /path/to/your/python/script/ 替换为 keystart.py 文件所在的路径。

  2. 将脚本移动到适当的位置并赋予执行权限:
    打开终端,将 keystart.sh 移动到 /usr/local/bin/ 目录,并赋予它执行权限:

    1
    2
    sudo mv keystart.sh /usr/local/bin/
    sudo chmod +x /usr/local/bin/keystart.sh
  3. 创建systemd服务文件:
    使用以下命令创建一个 keystart.service 文件:

    1
    sudo nano /etc/systemd/system/keystart.service

    在编辑器中添加以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [Unit]
    Description=Run keystart.py on startup

    [Service]
    ExecStart=/usr/local/bin/keystart.sh
    WorkingDirectory=/path/to/your/python/script/
    StandardOutput=inherit
    StandardError=inherit
    Restart=always
    User=pi

    [Install]
    WantedBy=multi-user.target

    请将 WorkingDirectory 的值替换为 keystart.py 所在的路径,并将 User 的值替换为您的用户名(默认情况下是pi)。

  4. 启用并启动systemd服务:
    使用以下命令启用和启动keystart.service

    1
    2
    sudo systemctl enable keystart.service
    sudo systemctl start keystart.service
  5. 检查服务状态:
    使用以下命令检查服务的状态,确保它正在运行:

    1
    sudo systemctl status keystart.service

现在,keystart.py 应该会在树莓派开机时自动运行。如果您遇到任何问题,请确保路径和文件名正确,以及脚本和服务文件的权限设置正确。