ここにBeagleBoneBlackがあり、Debian 8.3、Linux4.1.15-ti-rt-r43を実行しています。デスクトップはLXQTです。
起動後、.shファイルを実行したいと思います。デスクトップ環境の準備ができたら、そのファイルとして、パスを変更し、いくつかの変数を設定した後、monoを呼び出してGUIベースのプログラムを開始します。
「スタートメニュー」の使用:
環境設定-> LXQt設定->セッション設定->自動開始
最初に「GlobalAutostart」の下に、後で「LXQt Autostart」の下にエントリを追加しました(一度に両方のボックスの1つだけがチェックされます)。 「コマンド」の下で、「検索...」ボタンを使用して.shスクリプトへのパスを指定しました。つまり、タイプミスはありません。 「システムトレイ待ち」のチェックとオフの両方で試してみました。 「閉じる」を押して、毎回スタートメニューからマシンを再起動します。
デスクトップが起動した後、他に何も起こりません。スクリプトはsshremote *コマンドプロンプトから正常に実行されますが、アプリは起動します。また、デスクトップにコピーしてクリックすると機能します。
_ * .shファイルには「exportDISPLAY =:0」という行が含まれています。これは、GUIアプリを起動するためにssh経由で起動するために最初に使用されたためです。ここで何かが変わるかどうかを確認するためにコメントアウトしましたが、変わりません。
[〜#〜] edit [〜#〜]:これで、。desktopファイルを〜/ .config/autostart-上記のようにUIをクリックして、そのフォルダーにLXQtが作成した.desktopファイルに注目します。私のファイルでは、.shスクリプトを開始するためのパスなどを指定し、1つの追加オプションをtrueに設定しました。「ターミナル」は、自動起動プログラムをターミナルで実行する必要があることを指定します。これが私に見せることでした-はい、確かに、somethingは、起動/デスクトップ環境のロード後に開始されます。これは、ターミナルが表示されているためです。つまり、自動起動ファイルは無視されません。しかし、.shスクリプトの「echo」コマンドはその端末に表示されず、モノラルアプリケーションも起動しません。次に、別のリモートシェルを開き、autostart .desktopファイルの「Exec」で指定したパスをコピーして貼り付けると、アプリが想定どおりに起動するため、パスは正しいです。
それで、そこで何が起こっているのですか? LXQtデスクトップは明らかに私のファイルを見つけて自動起動しようとしますが、何もしません。考えられる原因?私は(これがすべて内部でどのように機能するかを実際には知らない)、おそらくデスクトップがロードされていても、何らかの面白い理由でモノラル/ GUIの準備ができていないので、「眠っている...」というエコーを入れて、30秒眠ります、自動起動することになっている.shファイルのモノラルアプリを呼び出す前に、「モノラルアプリを呼び出しています...」とエコーします。これは、開始時に開くようになったテムリナルには表示されません。また、役に立ちません。
さて、それは動作します。 なぜの違いに注意する以外に自動起動が機能しなかったのかという正確な質問に対する正確な答えはありません:.shファイルは機能しません動作し、アプリケーションは直接動作します。
私が今したこと:
Autostartフォルダー内の古い.desktopファイルを削除した後、theファイルを作成しました。
$ nano ~/.config/autostart/MyAppName.desktop
これを挿入しました:
[Desktop Entry]
Exec=mono /full/path/to/mono_c#/gui/app/myappname.exe
Path=/full/path/to/working/directory
Name=MyAppName
Type=Application
Version=1.0
注:ここでの「Exec」の実行可能ファイルは、path変数を介して検出され、monoであり、そのコマンドラインargは、monoフレームワークで実行される「executable」へのパスです。
これは想定どおりに機能します。再起動->アプリが起動します。
編集:私にとって、アプリにはPathによって割り当てられた作業ディレクトリがなかったことに注意してください。おそらくどこかで私の側にエラーがありますが、念のために言及します。
ここで動作することを拒否する元の.shファイルでいくつかのことを実行したかったのですが。ですから、何が起こっているのかを正確に伝えることができる誰かがやって来た場合に備えて、私はしばらくの間自分の答えを「受け入れる」ことはしません。
編集-いくつかの参照:
https://wiki.archlinux.org/index.php/Desktop_entries#File_example