Installation d'un serveur de paintchat

Pour installer le paintchat, il y a aucune infos en français et j'en ai pas trouvé en anglais non plus sur le web. Voici comment je me suis débrouillé pour l'installer sur un serveur linux par une connexion ssh (sans interface graphique).

Téléchargez la dernière version sur le site, J'utilise la version java

copiez les fichiers sur le serveur et modifiez le fichier cnf/paintchat.cf pour configurer les options du serveur, voila mon fichier :

# logger le texte du chat sur le serveur, ce qui permet aux clients qui se connectent de récupérer l'historique
Server_Log_Text=true
Server_Cash_Text=true
Server_Cash_Text_Size=200
Server_Load_Text=true

chatIndex=1086856254
ao_show_html=false
homepageName=Le paintchat des warriors de l'atelier

# logger les dessins sur le serveur, ce qui permet aux clients qui se connectent 
# de récupérer l'historique, les vieux dessins s'affichent au moment de la connexion
Server_Log_Line=true
Server_Cash_Line=true

# taille limite pour le cache du dessins (je ne connait pas l'unitée) 
# la valeur par défaut se révèle être largement suffisante
Server_Cash_Line_Size=512000
Server_Load_Line=true

Connection_GrobalAddress=true
App_Auto_Lobby=false


# fichier de config de l'applet java client, le fichier se trouve dans le partage web au même endroit que l'applet
File_PaintChat_Infomation=www/.paintchat

App_Get_Index=false

# emplacement de la configuration serveur
File_Config=/home/polo/paintchat/cnf/paintchat.cf

hpUrl=http://www.rosanbo.com
chatName=Le paintchat des warriors de l'atelier

# l'application intègre un mini server http désactivé dans mon cas, 
# cette option permet de modifier le port du serveur
Connection_Port_Http=80

chatUrl=http://www.rosanbo.com
informtionServerAddress=http://www.ax.sakura.ne.jp/~aotama/paintchat/paintchatexcheange.conf

# Largeur et hauteur en pixel de l'espace de travail pour dessiner
Client_Image_Width=2048
Client_Image_Height=2048

commentString=
App.BrowserPath=false


# options pour désactiver des fonctionalités pour les clients
Client_Permission=layer:all;layer_edit:true;canvas:true;talk:true;fill:false;clean:true;

pchatVersion=3.66
App_Version=(C)PaintChatApp v3.66
administratorName=polo

# démarrer automatiquement le serveur de paintchat lors du lancement de l'application
App_Auto_Paintchat=true

# options pour l'affichage de la console serveur
App_ShowStartHelp=false
App_IsConsole=false
App_ShowHelp=true


# Port du serveur de paintchat, si laissé vide, le port sera différent à chaque démarrage du serveur
Connection_Port_PaintChat=48313

# Démarrer automatiquement le serveur http lors du lancement de l'application
App_Auto_Http=false

Et voici le contenu de mon script pour lancer le serveur :

#!/bin/sh
cd /home/polo/paintchat
java -cp ./:PaintChat.jar paintchat_server.Server ./cnf/paintchat.cf >> ./paintchatlog &

Il faut le lancer avec la commande su -c pour éviter que le script s'arrete lorsqu'on se déconnecte du serveur

voila une deuxième version du script, plus complète :

#!/bin/sh

cd /home/polo/paintchat
ps Hxo pid,pcpu,comm | awk '/[2-9][0-9]\.[0-9] java/ {system("kill " $1)}'

if [ "`ps xo command | grep '^java.*paintchat'`" ]
then
	echo "paintchat is running"
else
	echo "start paintchat"
	rm save_server/*
	java -cp ./:PaintChat.jar paintchat_server.Server ./cnf/paintchat.cf >> ./paintchatlog &
	disown
fi

Ce script peut être appelé quand le serveur est en marche, si le server est arreté ou planté, il le redémarre. Attention le script considère comme planté des processus java qui consomment plus de 20% de CPU, y compris les processus java qui ne sont pas du paintchat. La commande disown intégrée dans le script "détache" le processus de la session.

Sur mon système, ce script est lancé toutes les minutes par le service cron.