我开发了一个应用程序,供用户在屏幕上查看特定时间。我正在使用pygames库,用户运行.py文件后,GUI全屏显示。
我想要一个解决方案,以便用户不需要运行该文件,而是在登录完成后自己执行文件
答案 0 :(得分:1)
将脚本添加到/etc/rc.local
文件。
在带有文本编辑器的Raspberry pi open /etc/rc.local
上,我使用VIM和sudo
命令。
打开文件后,您会看到如下内容:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
#Add your script here
/home/pi/somescript.sh
exit 0
一旦您添加了脚本的路径,该文件将在重新启动时执行。如果您想在登录时运行,请执行相同的操作,但请改为编辑.bashrc
文件。
答案 1 :(得分:0)
Raspberry PI运行Debian操作系统。
有关如何在启动时运行python脚本的相关讨论可以找到here 如果要在启动新终端时运行脚本,则需要更新.bash_profile,.profile,.bashrc文件。有关此here
的更多信息答案 2 :(得分:0)
假设桌面为LXDE,则可以使用LXSession在登录时自动启动应用程序。要配置它: 菜单->首选项-> LXSession的默认应用程序
点击“自动启动” *禁用自动启动的应用程序? =否
在“ +添加”旁边的框中输入应用程序的名称,然后按“ +添加”,它将出现在“手动自动启动的应用程序”下。
注销并再次登录,应用程序应该启动。
答案 3 :(得分:0)
这花了我一些时间来弄清楚,所以,我想我会提供我的智慧。在下面的示例中,我将设置一个Raspberry Pi,以在启动时(使用外围设备)挖掘加密货币,并使用具有应用程序资产的特定工作目录,并已启用自动登录。为自动启动创建新条目...
cd /home/pi/.config/autostart/
sudo vim miner.desktop
在miner.desktop
中,我添加了要在用户登录后在启动时运行的命令。如果不确定格式,通常在该文件夹中已经有一个示例(对我来说,是LXinput-setup.desktop
),则可以根据需要将其用作模板。
[DeskTop Entry]
Type=Application
Name=Miner (or whatever you want to call it)
Comment=MINE! (or whatever comment you want to add)
Exec=lxterminal --working-directory=/home/pi/Documents/miner/ -e ./start_moonlander2.sh
NotShowIn=GNOME;KDE;XFCE
您可以想象,Exec
的值是实际执行的值。让我们分解一下这个命令...
lxterminal --working-directory=/home/pi/Documents/miner/ -e ./start_moonlander2.sh
lxterminal
:用于启动终端窗口的新进程的应用程序。--working-directory=/home/pi/Documents/miner/
:设置执行的工作目录。如果您的脚本使用本地文件(即,如果其应用程序资源位于/pi/Documents/miner/
中,则这将非常重要)。-e ./start_moonlander2.sh
:这是在先前指定的工作目录中运行的命令。我正在执行一个本地sh
脚本,该脚本正在使用工作目录中的资产。想知道您做的事情是正确的吗?如果您在新的终端窗口中运行,则lxterminal命令应该单独运行。这将导致一个新的终端窗口弹出并运行您的命令。如果崩溃了,则不太可能使用新的[DeskTop Entry]
来正确启动,并且您需要首先使它正常工作。