Tự động khởi động máy chủ chặt chẽ trên máy chủ Raspberry Pi 2


11

Tôi có Raspberry Pi 2 và đã theo dõi bài đăng trên Raspberrypi.org nhưng Máy chủ VNC chặt chẽ không bắt đầu khởi động lại. Dường như không có bất kỳ lỗi nào.

Làm cách nào để có được chặt chẽ máy chủ bắt đầu trên Pi Reboot?


Chưa thể đăng câu trả lời, nhưng có một phương pháp đơn giản mà tôi đã thực hiện trên pi 3 B của mình được ghi lại tại adafbean tại đây: learn.adafbean.com/ Kẻ
Steven Evers

Câu trả lời:


10

Để làm điều này, bạn có thể sử dụng một chút thông minh của Linux.

Nhiệm vụ đầu tiên của chúng tôi sẽ là chỉnh sửa tệp /etc/rc.local. Tập tin này có thể chứa các lệnh được chạy khi khởi động. Nếu chúng ta nhìn vào tập tin, chúng ta có thể thấy rằng đã có một vài mục trong đó;

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

Nhóm dòng đầu tiên có dấu băm (#) phía trước chúng là các nhận xét. Đây chỉ là để giải thích những gì đang xảy ra với một người đọc tệp.

Các dòng mã về phía dưới rõ ràng có liên quan đến địa chỉ IP của máy tính. Trên thực tế, chúng là một đoạn script ngắn kiểm tra xem Raspberry Pi có địa chỉ IP hay không và nếu có, nó sẽ in ra. Nếu bạn nhớ lại, bạn có thể thấy địa chỉ IP được in trên màn hình khi Pi khởi động như vậy

My IP address is 10.1.1.8

Raspbian GNU/Linux 7 raspberrypi tty1

raspberrypi login:

Đoạn script này trong RC.local là mã chịu trách nhiệm in ra địa chỉ IP!

Chúng tôi sẽ thêm lệnh sau vào RC.local;

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

Lệnh này chuyển người dùng thành người dùng 'pi' với su - pi. Chữ viết tắt của 'switch user' dấu gạch ngang (-) đảm bảo rằng môi trường của người dùng pi (giống như tất cả các cài đặt của họ) được sử dụng đúng và pi là người dùng.

Tùy chọn -c tuyên bố rằng phần tiếp theo của dòng sẽ là lệnh sẽ được chạy và phần bên trong dấu ngoặc kép ('/ usr / bin / chặtvncserver: 1') là lệnh.

Lệnh trong trường hợp này thực thi tệp tệp tinvnvn máy chủ trong thư mục / usr / bin và nó chỉ định rằng chúng ta nên bắt đầu phiên máy tính để bàn 1 (: 1).

Để làm điều này, chúng tôi sẽ chỉnh sửa tệp RC.local bằng lệnh sau;

sudo nano /etc/rc.local

Thêm vào dòng của chúng tôi để tập tin trông như sau;

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

(Chúng tôi cũng có thể thêm nhận xét của riêng mình vào tệp để cho độc giả tương lai biết chuyện gì đang xảy ra)

Đó nên là nó. Bây giờ bạn có thể kiểm tra dịch vụ bắt đầu khi Pi khởi động bằng cách khởi động lại.

Nếu những điều trên nghe có vẻ hơi dài dòng, hãy xem lý do đầy đủ hơn ở đây .


Nó không làm việc cho tôi.
Tắc kè hoa

Câu trả lời được viết cho phiên bản 'Wheezy' của Raspbian. Phiên bản mới hơn ('Jessie' và (tôi đoán) 'Stretch') có một phương thức mặc định khác. Xem ở đây để có một cách tiếp cận khác.
d3noob

5

Trước khi bắt đầu, đảm bảo Pi của bạn được kết nối với internet \ mạng qua Ethernet \ wifi.

Mở Terminal và nhập các lệnh sau:

Nhận địa chỉ IP Pi cho kết nối từ xa (để sử dụng sau)

hostname -I

Cài đặt chặt chẽ máy chủ

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

Lần đầu tiên chạy, bạn phải nhập mật khẩu và xác minh nó. Không cần nhập mật khẩu chỉ xem.

Để định cấu hình cho tự động bắt đầu như một dịch vụ khi Pi khởi động:

Mở nano (trình soạn thảo văn bản) để tạo tệp để tự động khởi động Máy chủ VNC sudo nano /etc/init.d/tightvncserver

Nhập vào sau (hoặc sao chép và dán ):

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

Nhấn Ctrl + x, sau đó y để lưu và Enter để giữ cùng tên tệp.

Chỉnh sửa các quyền của tệp này để làm cho nó thực thi và hoạt động:

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

Khởi động lại để kiểm tra khởi động lại sudo

Cài đặt ứng dụng khách vnc cho HĐH của bạn và thử kết nối khi Pi đã khởi động lại!

Ví dụ, đối với Windows: Máy khách chặt chẽ . Không cần cài đặt máy chủ.

Bắt đầu Kết nối máy khách VNC bằng địa chỉ IP từ đầu bài này. Thay đổi địa chỉ IP cho bạn. Số cổng trong một số bài đăng trên internet chỉ được liệt kê dưới dạng 2 chữ số. Đây là bàn tay ngắn và nếu bạn đang sử dụng đoạn script trên, pi của bạn đang chạy trên cổng 1 thì bạn nên sử dụng 590 1 . Nếu 2, thì 590 2, v.v.

192.168.1.123:5901

Giải pháp của bạn đang hoạt động hoàn hảo cho tôi ngoại trừ tôi không nhận được toàn màn hình. Làm thế nào tôi có thể có được toàn màn hình? ( vncserver -geometry 1366x768 -depth 24 -dpi 96. Tôi đã sử dụng lệnh đó trước đây để có được toàn màn hình. Có cách nào để thêm dòng trong mã của bạn không?)
opu 17/11/2016

@opu Dòng su $VNCUSER -c '/usr/bin/tightvncserver :1'này là thứ chạy lệnh bạn đang đề cập đến. Đơn giản chỉ cần nối các tùy chọn vào cuối dòng đó, điều này sẽ dẫn đến kết quả tương tựsu $VNCUSER -c '/usr/bin/tightvncserver :1' -geometry 1366x768 -depth 24 -dpi 96
Trent

Làm thế nào để tôi gỡ lỗi nếu điều này không hoạt động? Nếu tôi chạy chặt chẽvncserver tại dòng lệnh người dùng pi, nó sẽ khởi động và tôi có thể điều khiển từ xa, nhưng không tự động bắt đầu bằng cách sử dụng giải pháp này hoặc /etc/rc.local.
Alan McDonley
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.