Làm cách nào để khởi động VNC Server khi khởi động?


29

Làm cách nào để tạo tệp tự khởi động trên toàn hệ thống? Điều này sẽ có trên một máy chủ đám mây chạy phiên bản Maverick trên máy tính để bàn.

Tôi đã đăng nhập bằng root và tạo một tệp tự khởi động bằng cách sử dụng System/Preferences/StartupApplicationsnhưng nó đã kết thúc /root/.config/autostartvà không thực thi (theo như tôi có thể nói) khi khởi động lại. Tệp tự khởi động là để gọi một tập lệnh bash gọi máy chủ VNC.

Tôi đã sao chép tệp tự khởi động .desktop từ /root/.config/autostartđến /etc/xdg/autostartvà khởi động lại. Điều này dường như không làm cho một sự khác biệt.

Chỉnh sửa Như đã đề cập trong một nhận xét, mục tiêu là chạy tập lệnh bash của tôi để khởi động máy chủ VNC khi khởi động; không đăng nhập.


bạn có nghĩa là tự động khởi động khi khởi động hoặc tự động khởi động khi ai đó (bất cứ ai) đăng nhập?
fossfreedom

Tôi muốn máy chủ VNC tự khởi động khi khởi động.
H2ONaCl

1
Tôi đã tìm thấy câu trả lời tại SU SE superuser.com/questions/147109/ Hãy thử xem
Wisemonkey

Không VNC yêu cầu màn hình để chạy?
desgua

Câu trả lời:


19
  1. Đầu tiên, cài đặt máy chủ TightVNC sudo apt-get install tightvncserver.

  2. Thiết lập máy chủ VNC cho người dùng bạn muốn đăng nhập. Khi bạn chạy "vncserver" lần đầu tiên, nó sẽ yêu cầu bạn đặt mật khẩu. chỉ cho phép kết nối SSH được điều chỉnh hoặc kết nối VPN. Để khởi chạy chương trình hoặc phiên khi phiên VNC của bạn bắt đầu, hãy sửa đổi ~/.vnc/xstartup. Đây là một ví dụ.

    #!/bin/sh
    
    xrdb $HOME/.Xresources
    xsetroot -solid black
    /opt/azureus/azureus &
    k3b &
    icewm-session &
    
  3. Sao chép phần sau vào /etc/init.d/vncserver. Cách dễ nhất để làm điều đó là sao chép nó vào khay nhớ tạm của bạn, chạy sudo -i && cat > /etc/init.d/vncserver && exittrong một thiết bị đầu cuối, dán nó vào và gõ CTRL-D. Đảm bảo thay đổi biến USER thành bất kỳ người dùng nào bạn muốn máy chủ VNC chạy theo.

    #!/bin/sh -e
    ### BEGIN INIT INFO
    # Provides:          vncserver
    # Required-Start:    networking
    # Default-Start:     3 4 5
    # Default-Stop:      0 6
    ### END INIT INFO
    
    PATH="$PATH:/usr/X11R6/bin/"
    
    # The Username:Group that will run VNC
    export USER="mythtv"
    #${RUNAS}
    
    # The display that VNC will use
    DISPLAY="1"
    
    # Color depth (between 8 and 32)
    DEPTH="16"
    
    # The Desktop geometry to use.
    #GEOMETRY="<WIDTH>x<HEIGHT>"
    #GEOMETRY="800x600"
    GEOMETRY="1024x768"
    #GEOMETRY="1280x1024"
    
    # The name that the VNC Desktop will have.
    NAME="my-vnc-server"
    
    OPTIONS="-name ${NAME} -depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
    
    . /lib/lsb/init-functions
    
    case "$1" in
    start)
    log_action_begin_msg "Starting vncserver for user '${USER}' on   localhost:${DISPLAY}"
    su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
    ;;
    
    stop)
    log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
    su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
    ;;
    
    restart)
    $0 stop
    $0 start
    ;;
    esac
    
    exit 0
    
  4. Làm cho kịch bản thực thi với sudo chmod +x /etc/init.d/vncserver.

  5. Cuối cùng, kết nối với máy chủ của bạn với máy khách VNC trên cổng 590X, trong đó X là giá trị của "HIỂN THỊ" trong tập lệnh vncserver. Trên OS X, tôi thích sử dụng Chicken of the VNC. Trên Windows và Linux, máy khách TightVNC hoạt động độc đáo.

Nguồn


Đây superuser.com/questions/147109/... từ wisemonkey là stackexchange câu trả lời tương đương. Nó hoạt động. Lưu ý đường dẫn đến X11 có thể cần điều chỉnh.
H2ONaCl

TigerVNC cài đặt /etc/init.d/vncserverbắt đầu tất cả các vncservers được cấu hình trong/etc/sysconfig/vncservers
Kashyap

5
Đây là bản sao được dán từ abdevelopment.ca/blog/start-vnc-server-ubfox-boot , nhưng nó BẮT ĐẦU BƯỚC QUAN TRỌNG NHẤTsudo update-rc.d vncserver defaults
Hai Phan

3

Một khả năng: /etc/rc.local

Nội dung nói rằng:

# 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

Các bit thực thi được đặt thành 755 trên hệ thống của tôi. (chmod 755 /etc/rc.local)

Bạn có thể đặt bất kỳ lệnh nào trong đó, lệnh này sẽ được thực thi dưới dạng root.

Điều này ổn cho mục đích của bạn miễn là bạn không thay đổi đường băng, tôi đoán vậy. (Nếu bạn không biết runlevels là gì, đừng bận tâm).


2
Đề nghị này đã không làm việc cho tôi.
H2ONaCl

2 điều chỉnh có thể giúp đỡ.
Cees Timmerman

@CeesTimmerman, cảm ơn bạn nhưng 2 điều chỉnh đó không hoạt động.
H2ONaCl

2

Nếu bạn đang sử dụng TigerVNC thì nó sẽ cài đặt /etc/init.d/vncserverkhởi động tất cả các vncservers được cấu hình trong /etc/sysconfig/vncservers Eg sau đây sẽ bắt đầu 2 phiên bản hiển thị 1 & 2 khi khởi động.

# <display>:<user>
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1920x1080"

VNCSERVERS="2:guest"
VNCSERVERARGS[2]="-geometry 800x600 -SecurityTypes None"

2

đây có vẻ là một bài viết cũ nhưng chủ đề có thể vẫn thú vị đối với một số người dùng. Để có vnc khởi động khi khởi động, bạn sẽ cần

  1. cài đặt phần mềm máy chủ vnc (ở đây chúng tôi sẽ sử dụng x11vnc)
  2. cấu hình tập lệnh khởi động (được sử dụng để bắt đầu dịch vụ vnc)

Bước 1 - cài đặt máy chủ x11vnc

từ một dòng lệnh, gõ

 sudo apt-get install x11vnc

Để thêm bảo mật, bạn nên đặt pwd

sudo x11vnc -storepasswd

Bước 2 - Cấu hình tập lệnh khởi động của bạn

  • nếu phiên bản ubfox của bạn thấp hơn 15.04,

bạn tạo tập tin cấu hình bên dưới /etc/init.d/x11vnc.confvà điền vào nó các lệnh chính xác sẽ được thực thi

start on login-session-start  
script  
/usr/bin/x11vnc -xkb -auth
/var/run/lightdm/root/:0
-noxrecord -noxfixes -noxdamage 
-rfbauth /etc/x11vnc.pass 
-forever -bg -rfbport 5900 -o /var/log/x11vnc.log  
end script
  • nếu phiên bản Ubuntu của bạn là 15.04 trở lên,

các hệ thống này đang sử dụng systemd và bạn sẽ cần tạo tệp đơn vị dịch vụ của mình bên dưới /lib/systemd/system/x11vnc.service và điền vào đó các lệnh chính xác sẽ được thực thi

[Unit] Description=Start x11vnc at startup. After=multi-user.target

[Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -forever
-loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -shared

[Install] WantedBy=multi-user.target

Tải lại dịch vụ

sudo systemctl daemon-reload

sudo systemctl enable x11vnc.service

Bạn có thể tìm thấy thông tin chi tiết trên trang wiki Cộng đồng Trợ giúp (xem tại đây ) hoặc bạn có thể thử sử dụng nhanh chóng này để sử dụng nhận

  • Đối với phiên bản Ubuntu thấp hơn 15.04 , hãy kiểm tra bài đăng này
  • Đối với Ubuntu phiên bản 15.04 trở lên , hãy kiểm tra bài đăng này

Hy vọng điều này hữu ích


1

Thêm dòng dưới đây vào tập tin crontab. Điều này có nghĩa là lệnh sau khi từ khóa @rebootđược thực thi trong quá trình khởi động lại.

@reboot /usr/bin/vncserver :1

Để mở tệp crontab, cần sử dụng lệnh crontab -e


Tương tự như câu trả lời của đứa trẻ 6 tuổi này: Askubfox.com/a/124079/158442
muru

0

Bạn có thể có công cụ bắt đầu cron cho bạn tại thời điểm khởi động. Chỉ cần sử dụng chuỗi "@reboot" thay cho các số mà bạn thường sử dụng để chỉ định khi nào nên chạy.

Ví dụ: đây là cách tôi khởi động Dropbox trên một máy mà nó không tự khởi động:

# m h  dom mon dow   command
@reboot         /usr/bin/dropbox start

Trang này nói rằng chỉ hoạt động nếu hệ thống thực sự khởi động lại (không khởi động nguội).
Cees Timmerman

0

'sudo update-rc.d vncserver mặc định' báo cáo rằng đã mất tích; "Bắt buộc-Dừng:" (thậm chí trống). Vì vậy, tôi đã thêm nó như dưới đây. Và không còn cảnh báo nữa.

    #!/bin/sh -e
    ### BEGIN INIT INFO
    # Provides:          vncserver
    # Required-Start:    networking
    # Required-Stop:     
    # Default-Start:     3 4 5
    # Default-Stop:      0 6
    ### END INIT INFO
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.