init.dスクリプトがグラフィックデータを送信しない

init.dスクリプトがグラフィックデータを送信しない

クライアントサーバーJavaプログラムがあります。クライアントの使命は、画面をキャプチャし、データをサーバーに送信することです。もう1つの機能は、サーバーによって提供されたWebサイトを開き、いくつかのテキストをサーバーに送信することです。クライアントが起動時に実行したいので、スクリプトを作成して使用してから/etc/init.dupdate-rc.d scriptname defaults起動しました。再起動後に受信する必要があるテキストは完全に機能します。ただし、クライアントがキャプチャした画面を閲覧または受信することはできません。

init.dで使用されるスクリプトは次のとおりです。

#!/bin/sh

### START INIT INFO
# Provides: suscript
# Required-Start:    $remote_fs $syslog $local_fs $network
# Required-Stop:     $remote_fs $syslog $local_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

java -jar /etc/capture/capture.jar

クライアントjarをrootとして実行しています。グラフィックデータをサーバーに転送する方法は?

ベストアンサー1

JavaにはスクリーンショットをキャプチャするためのRectangleクラスがあるため、これを使用して自分の前に表示される画面をデスクトップにキャプチャします。おそらく、Xセッションのスクリーンショットを撮るために使用されているようです。

X セッションが複数ある場合と存在しない場合があります。いずれの場合も、プロセスは次のようになります。どのしたがって、キャプチャする画面を持つことを考慮する方法を言うのは難しいです。物理モニターが接続されているシステムで実行されているとしても、プロセスがそのモニターで実行されているというわけではありません。走るバックグラウンドで体系的。

プロセスがXセッションで実行されるようにする方法がある場合は、それが何であるかを説明する必要があります。自動的に発生しません。もっと遠く:

# Required-Start:    $remote_fs $syslog $local_fs $network

これらのどれもXの内容を含まず、GUIが実行される前にサービスが開始される可能性が高くなります(スプラッシュ画面はGUIではなくイメージにすぎないことを忘れないでください)。この場合、そのインターフェイスが必要な部分は失敗します。

ディスプレイマネージャを使用していると仮定すると、initシステムがそれに関連するプロセスをスケジューリングする方法を確認し、開始するための前提条件を設定する必要があります。後ろにDM。

おすすめ記事