Comment créer un fichier de démarrage automatique à l'échelle du système? Ce serait sur un serveur cloud exécutant la version de bureau de Maverick.
Je me suis connecté en tant que root et j'ai créé un fichier à démarrage automatique à l'aide de System/Preferences/StartupApplications
, mais il s'est retrouvé dans /root/.config/autostart
et ne s'est pas exécuté (autant que je sache) au redémarrage. Le fichier de démarrage automatique doit appeler un script bash qui appelle le serveur VNC.
J'ai copié le fichier de démarrage automatique .desktop de /root/.config/autostart
à /etc/xdg/autostart
et redémarré. Cela n'a pas semblé faire une différence.
Edit Comme mentionné dans un commentaire, l'objectif est d'exécuter mon script bash qui démarre le serveur VNC au démarrage; pas sur un login.
Commencez par installer le serveur TightVNC Sudo apt-get install tightvncserver
.
Configurez le serveur VNC pour l'utilisateur avec lequel vous souhaitez vous connecter. Lorsque vous exécutez "vncserver" pour la première fois, il vous sera demandé de définir un mot de passe. N'autorisez que les connexions SSH tunnellées ou VPN. Pour lancer des programmes ou une session lorsque votre session VNC démarre, modifiez ~/.vnc/xstartup
. Voici un exemple.
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid black
/opt/azureus/azureus &
k3b &
icewm-session &
Copiez le texte suivant dans /etc/init.d/vncserver
. La façon la plus simple de le faire est de le copier dans votre presse-papiers, d'exécuter Sudo -i && cat > /etc/init.d/vncserver && exit
dans un terminal, de le coller et de taper CTRL-D. Assurez-vous de modifier la variable USER en choisissant l'utilisateur sous lequel vous souhaitez que le serveur VNC s'exécute.
#!/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
Rendre le script exécutable avec Sudo chmod +x /etc/init.d/vncserver
.
Une possibilité: /etc/rc.local
Le contenu le dit:
# 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
Les bits d'exécution sont déjà définis sur 755 sur mon système. (chmod 755 /etc/rc.local)
Vous pouvez y insérer n'importe quelle commande, qui sera exécutée en tant que root.
Je pense que cela vous convient tant que vous ne modifiez pas les niveaux d'exécution. (Si vous ne savez pas ce que sont les niveaux d'exécution, ne vous inquiétez pas).
cela semble être un ancien post, mais le sujet pourrait être toujours intéressant pour certains utilisateurs. Pour que vnc démarre au démarrage, vous devrez
Étape 1 - installer le serveur x11vnc
à partir d'une ligne de commande, tapez
Sudo apt-get install x11vnc
Pour ajouter de la sécurité, vous devez définir un pwd
Sudo x11vnc -storepasswd
Étape 2 - Configurez votre script de démarrage
vous créez le fichier de configuration sous /etc/init.d/x11vnc.conf
et le remplissez avec les commandes à exécuter
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
ces systèmes utilisent systemd et vous devrez créer votre fichier d'unité de service sous /lib/systemd/system/x11vnc.service
et le renseigner avec les commandes à exécuter.
[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
Recharger le service
Sudo systemctl daemon-reload
Sudo systemctl enable x11vnc.service
Vous pouvez trouver des informations détaillées sur la page wiki Help Ubuntu Community (voir here ) ou vous pouvez essayer d’utiliser cette recette rapide à utiliser.
J'espère que c'est utile
Si vous utilisez TigerVNC, il installe /etc/init.d/vncserver
qui démarre tous les vncservers configurés dans /etc/sysconfig/vncservers
Eg. Ce qui suit démarre 2 instances sur les écrans 1 et 2 au démarrage.
# <display>:<user>
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1920x1080"
VNCSERVERS="2:guest"
VNCSERVERARGS[2]="-geometry 800x600 -SecurityTypes None"
Ajoutez la ligne ci-dessous au fichier crontab. Cela signifie que la commande qui suit le mot clé @reboot
est exécutée au cours du très redémarrage.
@reboot /usr/bin/vncserver :1
Pour ouvrir le fichier crontab, vous devez utiliser la commande crontab -e
'Sudo update-rc.d vncserver par défaut' a signalé qu'il était manquant; "Required-Stop:" (même vide). Alors je l'ai ajouté comme ci-dessous. Et plus d'avertissement.
#!/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
Vous pouvez avoir des choses cron start pour vous au moment du démarrage. Utilisez simplement la chaîne "@reboot" à la place des nombres que vous utilisez normalement pour spécifier le moment où la chose doit être exécutée.
Par exemple, voici comment démarrer Dropbox sur une machine sur laquelle elle ne démarre pas automatiquement:
# m h dom mon dow command
@reboot /usr/bin/dropbox start