Raspberry Pi 2でTightVncServerを自動起動する


11

私はRaspberry Pi 2を持っており、Raspberrypi.orgの投稿をフォローしていますが、再起動時にTight VNCサーバーが起動しません。エラーはないようです。

Pi RebootでTightVncServerを起動するにはどうすればよいですか?


まだ回答を投稿することはできませんが、ここにadafruitに記載されているpi 3 Bで作業する簡単な方法があります。learn.adafruit.com/
Steven Evers

回答:


10

これを行うには、少しLinuxの賢さを使用できます。

最初のタスクは、ファイル/etc/rc.localを編集することです。このファイルには、起動時に実行されるコマンドを含めることができます。ファイルを見ると、そこには既にエントリがほとんどないことがわかります。

#!/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

exit 0

ハッシュマーク(#)が前にある最初の行はコメントです。これらは、ファイルを読み取る誰かに何が起こっているかを説明するためにあります。

下の方のコード行は、明らかにコンピューターのIPアドレスと関係があります。実際、これらはRaspberry PiにIPアドレスがあるかどうかを確認し、ある場合はそれを出力する短いスクリプトです。思い出すと、Piが起動すると、IPアドレスが画面に表示されます。

My IP address is 10.1.1.8

Raspbian GNU/Linux 7 raspberrypi tty1

raspberrypi login:

rc.localにあるこのスクリプトは、IPアドレスを出力するコードです。

次のコマンドをrc.localに追加します。

su - pi -c '/usr/bin/tightvncserver :1'

このコマンドは、su-piを使用してユーザーを「pi」ユーザーに切り替えます。suは「ユーザーの切り替え」を表し、ダッシュ(-)は、ユーザーのpiの環境(すべての設定と同様)が正しく使用され、piがユーザーであることを確認します。

-cオプションは、行の次の部分が実行されるコマンドであり、引用符内の部分( '/ usr / bin / tightvncserver:1')がコマンドであることを宣言します。

この場合のコマンドは、/ usr / binディレクトリにあるファイルtightvncserverを実行し、デスクトップセッション1(:1)を開始するように指定します。

これを行うには、次のコマンドでrc.localファイルを編集します。

sudo nano /etc/rc.local

行を追加して、ファイルが次のようになるようにします。

#!/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

# Start tightvncserver
su - pi -c '/usr/bin/tightvncserver :1'

exit 0

(ファイルに独自のコメントを追加して、今後の読者に何が起こっているのかを知らせることもできます)

それはそれであるはずです。これで、Piが再起動して起動したときにサービスが開始することをテストできます。

上記の説明が少し長めに聞こえる場合は、ここでより完全な理由を確認してください


私にはうまくいきません。
カメレオン

答えはRaspbianの 'Wheezy'バージョン用に書かれました。それ以降のバージョン(「Jessie」と(私は推定)「Stretch」)は、デフォルトの方法が異なります。別の方法については、こちらをご覧ください。
d3noob 2017

5

開始する前に、Piがイーサネット\ wifi経由でインターネット\ネットワークに接続されていることを確認してください。

ターミナルを開き、次のコマンドを入力します。

リモート接続用のPi IPアドレスを取得(後で使用するため)

hostname -I

TightVncServerをインストールする

sudo apt-get update
sudo apt-get install tightvncserver
tightvncserver

これを初めて実行するときは、パスワードを入力して確認する必要があります。表示専用パスワードを入力する必要はありません。

Piの起動時にサービスとして自動起動するように設定するには:

nano(テキストエディター)を開いて、自動起動するファイルを作成するTight VNC Server sudo nano /etc/init.d/tightvncserver

次のように入力します(またはコピーして貼り付けます)。

#!/bin/sh
# /etc/init.d/tightvncserver
# Set the VNCUSER variable to the name of the user to start tightvncserver under
VNCUSER='pi'
case "$1" in
  start)
    su $VNCUSER -c '/usr/bin/tightvncserver :1'
    echo "Starting TightVNC server for $VNCUSER"
    ;;
  stop)
    pkill Xtightvnc
    echo "Tightvncserver stopped"
    ;;
  *)
    echo "Usage: /etc/init.d/tightvncserver {start|stop}"
    exit 1
    ;;
esac
exit 0

Ctrl + xを押し、次にyを押して保存し、Enterを押して同じファイル名を保持します。

このファイルの権限を編集して、実行可能かつアクティブにします。

sudo chmod 755 /etc/init.d/tightvncserver
sudo update-rc.d tightvncserver defaults

再起動して sudoの再起動をテストする

OSにvncクライアントをインストールし、Piが再起動したら接続してみてください!

Windowsの場合:たとえばTightVNCクライアント。サーバーをインストールする必要はありません。

この投稿の上部にあるIPアドレスを使用してVNCクライアント接続を開始します。自分のIPアドレスを変更します。多くのインターネット投稿のポート番号は、2桁でのみ表示されています。これは手短です。上記のスクリプトを使用している場合、piがポート1で実行されている場合は590 1を使用する必要があります。2の場合、590 2など

192.168.1.123:5901

全画面表示にならないことを除いて、あなたの解決策は私にとって完璧に機能しています。全画面表示するにはどうすればよいですか?(vncserver -geometry 1366x768 -depth 24 -dpi 96。前にそのコマンドを使用して全画面表示にしました。コードに行を追加する方法はありますか?)
opu웃

@opu웃行su $VNCUSER -c '/usr/bin/tightvncserver :1'は、参照しているコマンドを実行するものです。オプションをその行の最後に追加するだけで、次のような結果になりますsu $VNCUSER -c '/usr/bin/tightvncserver :1' -geometry 1366x768 -depth 24 -dpi 96
Trent

これが機能しない場合、どうすればデバッグできますか?piユーザーコマンドラインでtightvncserverを実行すると、起動してリモートでアクセスできますが、これまたは/etc/rc.localソリューションを使用して自動起動していません。
Alan McDonley
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.