起動時に実行するためにC ++プログラムをどこに置く必要がありますか? [閉鎖]

起動時に実行するためにC ++プログラムをどこに置く必要がありますか? [閉鎖]

起動後にUbuntuサーバーにプログラムを起動させたいので、プログラムの実行可能アドレスを次のように/etc/rc.local入力しますspace+&

/home/m/myapp &

しかし、成功しませんでした!私のプログラムはgtk +ライブラリを使って画像を表示する単純なC ++コードで、手動で実行すると機能します。しかし、起動時に自動的に実行したいのですが、方法がわかりませんか?

編集:簡単な目的のコンピュータを作成したいと思います。実際にはロボットで、プログラムはC ++で書かれており、実行可能ファイルは/home/m/myapp。ユーザーメニューやシステム制御機能はありません。したがって、電源を入れた後に自動的に実行する必要があります。

さらに説明したい場合は、システムは次のように動作するはずです。

ユーザーがシステムの電源を入れると、ウェルカムイメージが表示され、ユーザーが音声コマンドを発信するのを待ちます。その後、音声を認識してその音声に関連する画像/動画を表示し、再びウェルカム画像を表示して新しいコマンドを待ちます。

メニューもなく、ログインページもなく、ユーザーが使用できるものもありません。上記のように、このシステムはユーザーコマンドを介してのみ実行されます。

Linuxに初めて触れてみると、バックグラウンドプログラムなのかわかりませんか?どうすればいいですか?

答え1

GTKにはXが必要で、Xがないとプログラムは画像を表示できません。

ログインマネージャのコンテキストで実行するには、ログインマネージャのデスクトップ環境に追加します。 (これは私が最後にUbuntuを見たときに/var/lib/somethingでした)

それ以外の場合は、ログインマネージャを自動的におもちゃセッションを開く「nodm」などの非対話型マネージャに置き換えてから、C ++アプリケーションをセッションの起動アプリケーションに追加できます。

Openboxで自動的に起動するようにアプリケーションをどこに追加したのかわかりませんが、~/.xsession常に機能します。

次に~/.xsessionファイルを作成します(manページを参照)。yourapp&openbox-sessionxinit

関連情報