Server a linux.

0

Witam, ponownie tutaj pisze... stworzyłem już w miarę działający czat, to zająłem się serverem. Jak na windowsie działa dobrze to na linuxie server dziwnie wiąże się z konsolą putty, której używam do sterowania vps'em. Można by powiedzieć, że całkowicie przejmuje konsole putty na swoje potrzeby, bo nie jestem w stanie nawet wpisać podczas działania programu żadnej komendy.
tak to mniej więcej wygląda:

root: ./server 

*/ wszystko to co server wyświetli/*
_

dopiero po wciśnięciu klawisza "enter" server się wyłącza a w konsoli pojawia się nowa linijka "root:" gdzie mogę wpisać kolejne polecenie.
Jak wyłączę konsolę to server też wyłączę.
Server czatu na bieżąco wyświetla mi w konsoli info o nowych połączeniach itd. i wiem ze będę musiał to wyłączyć. Ale czy to naprawi mój problem?

PS. jeśli chodzi o "root:" wymyśliłem to w rzeczywistości jest to coś innego.

0

Może warto nauczyc się korzystać z linuxowej konsoli w takim razie?...

./server&
0

Dalej to samo... to raczej coś trzeba w kodzie zmienić.

2

No jeśli ten serwer coś wypisuje to podane przeze mnie rozwiązanie nie zadziała, bo po operacji I/O sterowanie wróci do tego procesu.
No jak bardzo ci na tym zależy to możesz napisać sobie ręczne przejście w tryb demona za pomocą fork() i zamknięcia stdout i stdin.

0

Mam na razie coś takiego:

http://i.imgur.com/aIqVW.jpg?1

A chce by po wyświetleniu informacji była by możliwość dalszego wpisywania komend, bez kończenia programu. Ten drugi punkt co mi zaproponowałeś, z tego co wyczytałem to on całkowicie pozbawi mnie wyświetlania. A jednak chciałbym by te podstawowe informacje odnośnie tego czy server został poprawnie włączony a jeśli nie to co poszło nie tak (wszystko mam w kodzie).

znalazlem też metodę:
nohup ./server &
ale problem jest taki, że server mi od razu się wyłącza..

0

Tak naprawdę nie musisz mieć dostępu do tego konsolowego front-endu. Wszystko możesz zrobić za pomocą Server Query.
Jeżeli mimo wszystko chcesz, to serwer odpal w screenie.

Wystarczy jednak zwykły skrypt init.d, pod moim Debianem wygląda on tak:

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          teamspeak
# Required-Start:    networking
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      S 0 1 6
# Short-Description: TeamSpeak Server Daemon
# Description:       Starts/Stops/Restarts the TeamSpeak Server Daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="TeamSpeak Server"
NAME=teamspeak
USER=teamspeak
DIR=/home/teamspeak
DAEMON=$DIR/ts3server_startscript.sh
SCRIPTNAME=/etc/init.d/$NAME

cd $DIR
su teamspeak ./ts3server_startscript.sh $1

Logi masz w $DIR/logs.

0

Rev a mógłbyś taki skrypt z init.d napisać dla programu "server" w katalogu /home/czat/ ?? Bo dla mnie to trochę niezrozumiałe jest, chodzi mi o linię PATH,

0

zainteresuj się

  • poleceniem screen
  • co robi & na końcu polecenia
  • co robi Ctrl+Z
  • poleceniami fg i bg

1 użytkowników online, w tym zalogowanych: 0, gości: 1