Utiliser TeamViewer sous Linux sans serveur graphique
J’ai récemment eu besoin d’un système fiable (relativement fiable) pour pouvoir prendre la main sur un serveur à distance (je n’avais pas d’accès au routeur sur site et le client se chargeait de l’installation). Je me suis donc tourné vers TeamViewer, en effet la dernière version en date (la version 11) permet de prendre la main à distance sans serveur graphique installé.
L’installation n’est pas des plus compliquée, il suffit de suivre la documentation sur le site de l’éditeur. C’est après que les choses se sont gâtées. Le démon TeamViewer ne démarrait pas automatiquement, ce qui est plutôt ennuyeux.
J’ai pas mal cherché, et je poste aujourd’hui au cas où vous seriez dans la même situation. Je précise que le système utilisé ici est CentOS 7, mais le problème est surement identique sur Debian 8 par exemple, car lié à SystemD. Autre précision, ma façon de procéder n’est peut-être pas bonne, je compte sur vous dans les commentaires 🙂
L’installateur copie le fichier de service SystemD dans /etc/systemd/system/
ou dans /usr/lib/systemd/system/
:
[Unit] Description = TeamViewer remote control daemon After = NetworkManager-wait-online.service network.target network-online.target dbus.service Wants = display-manager.service NetworkManager-wait-online.service network-online.target Requires = dbus.service [Service] Type = forking PIDFile = /var/run/teamviewerd.pid ExecStart = /opt/teamviewer/tv_bin/teamviewerd -d Restart = on-abort StartLimitInterval = 60 StartLimitBurst = 10 [Install] WantedBy = graphical.target
Bon très bien, sauf qu’au redémarrage de votre serveur (qui n’a pas de serveur graphique installé) le démon ne démarre pas automatiquement.
Il faut modifier la variable WantedBy = graphical.target
par WantedBy = multi-user.target
.
Et oui, le serveur graphique n’est pas près de démarrer (il n’y en a pas) et le démon TeamViewer non plus… :p
[Unit] Description = TeamViewer remote control daemon After = NetworkManager-wait-online.service network.target network-online.target dbus.service Wants = display-manager.service NetworkManager-wait-online.service network-online.target Requires = dbus.service [Service] Type = forking PIDFile = /var/run/teamviewerd.pid ExecStart = /opt/teamviewer/tv_bin/teamviewerd -d Restart = on-abort StartLimitInterval = 60 StartLimitBurst = 10 [Install] WantedBy = multi-user.target
Voilà en espérant vous avoir aidé, n’hésitez pas à utiliser les commentaires si une autres solutions existes ou une façon de faire plus propre je suis preneur…