LinuxGSM icon indicating copy to clipboard operation
LinuxGSM copied to clipboard

include tsdns in ts3 startscript

Open Tealk opened this issue 7 years ago • 7 comments

Hi, is it possible that you include the tsdns in your ts3 startscript? Something like start tsdns bevor ts3

Thanks :D

Tealk avatar Mar 03 '17 14:03 Tealk

Hi It has been discussed before. https://github.com/GameServerManagers/LinuxGSM/issues/281

I don't see how LGSM would help with tdns, it's more of something to be added by users. Do you have an idea of what it should actually do?

UltimateByte avatar Mar 03 '17 17:03 UltimateByte

A Variable to start tsdns bevor ts3 starts tsdns=true/false

Tealk avatar Mar 03 '17 23:03 Tealk

I am also for this this idea. you must manually stop tsdnsserver to update teamspeak since the etracting also tries to overwrite the tsdns-folder. for start you need something like this teamspeak@mightful-noobs:~$ serverfiles/tsdns/tsdnsserver & This way it starts at forthground, but you have to CTRL+C to get it running in background, so that you can close your ssh session.

For short the variable must vaiable, path will be always "serverfiles/tsdns/tsdnsserver", and if you set variable on true, tsdnsserver must also be killed from the tasks. port for tsdnsserver is 41144, don't know if changeable but possible kill function if on same port and only on per user.

kill $(netstat -tulpn | grep :41144 | awk '/tsdnsserver/{print $7}' | tr -d '/tsdnsserver')

This will get the pid on the port for the running user. Example output:

teamspeak@mightful-noobs:~$ ps -u teamspeak
  PID TTY          TIME CMD
  340 pts/4    00:00:00 ps
  947 ?        00:00:00 sh
  950 ?        00:01:48 tsdnsserver
 3551 ?        06:44:54 ts3server
32537 ?        00:00:00 systemd
32541 ?        00:00:00 (sd-pam)
32552 ?        00:00:00 sshd
32553 pts/4    00:00:00 bash
teamspeak@mightful-noobs:~$ `kill $(netstat -tulpn | grep :41144 | awk '/tsdnsserver/{print $7}' | tr -d '/tsdnsserver')`
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
teamspeak@mightful-noobs:~$ ps -u teamspeak
  PID TTY          TIME CMD
  364 pts/4    00:00:00 ps
 3551 ?        06:44:54 ts3server
32537 ?        00:00:00 systemd
32541 ?        00:00:00 (sd-pam)
32552 ?        00:00:00 sshd
32553 pts/4    00:00:00 bash
teamspeak@mightful-noobs:~$

As can see from ps command it got the PID 950 and after my command it's killed.

xopez avatar Aug 25 '17 06:08 xopez

Having tsdns support actually sounds reasonable as it would - hopefully - decrease the amount of gaming communities giving out IP-addresses instead of a domain and abandoning their users upon address changes. All tsdns needs is the configured tsdns_settings.ini and a process to run on. It is nearly instantly started and stopped on ctrl+c. Just note that killing tsdns may not free the ports instantly which may lead to "Failed to bind port" issues.

MarkL4YG avatar Aug 25 '17 09:08 MarkL4YG

i tried the kill command out. And started my tsdnsserver manually without any problems.

xopez avatar Aug 25 '17 10:08 xopez

@xopez Yeah most often I've also got no problems but sometimes this happened ¯\(ツ)/¯. I "fixed" this by delaying a start a few seconds after it's been stopped.

MarkL4YG avatar Aug 25 '17 10:08 MarkL4YG

If you want to use it quickly, you can do the following workaround via systemctl:

# Contents of /etc/systemd/system/tsdns.service
[Unit]
Description=tsdns
After=network.target

[Service]
User=lgsm
Group=lgsm
Type=simple
Restart=always
WorkingDirectory=/home/lgsm/serverfiles/tsdns/
ExecStart=/home/lgsm/serverfiles/tsdns/tsdnsserver

[Install]
WantedBy=multi-user.target

save the file under /etc/systemd/system/tsdns.service and activate it via systemctl enable tsdns.service; systemctl start tsdns

Cheers

Toutzn avatar Dec 28 '21 11:12 Toutzn