ユーザーが画面上で特定の時間を表示するためのアプリケーションを開発しました。私は pygames ライブラリを使用しており、ユーザーが .py ファイルを実行した後、GUI がフルスクリーンになります。
ユーザーがファイルを実行する必要がなく、ログインが完了した後にファイルが自動的に実行されるようにするソリューションが必要です。
ユーザーが画面上で特定の時間を表示するためのアプリケーションを開発しました。私は pygames ライブラリを使用しており、ユーザーが .py ファイルを実行した後、GUI がフルスクリーンになります。
ユーザーがファイルを実行する必要がなく、ログインが完了した後にファイルが自動的に実行されるようにするソリューションが必要です。
スクリプトをファイルに追加し/etc/rc.local
ます。
Raspberry Pi で/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
代わりにファイルを編集してください。
TLDR:ディレクトリを使用しautostart
ます。
自動起動用の新しいエントリを作成...
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]
で正しく起動する可能性は低いため、最初にそれを機能させる必要があります。