Hello,
Ok I knocked this up quickly. You'll need two files;
startmagicka.sh
#!/bin/sh
screen -X sessioname bbs
/path/to/magicka /path/to/bbs.ini
remoterestart.sh
#!/bin/sh
pkill magicka
screen -dm -S bbs /path/to/startmagicka.sh
If you have a distro with systemd, you can create simple unit files to
help starting up magicka in the background. Currently I only start up
Magicka and binkd, since I don't have doors or other things running at
the moment.
My Magicka unit file (called magicka.service):
---start---
[Unit]
Description=Magicka BBS service After=network.target
[Service] User=bbs Group=bbs Type=simple WorkingDirectory=/home/bbs/bbs ExecStart=/home/bbs/bbs/magicka /home/bbs/bbs/config/bbs.ini ExecStop=/usr/bin/pkill -15 magicka Restart=on-failure
[Install]
WantedBy=multi-user.target
--end---
And I start binkp in a similar fashion. Here is my binkd unit file
(called magickbink.service):
---start---
[Unit]
Description=Magicka BINKD service After=network.target
[Service] User=bbs Group=bbs Type=simple WorkingDirectory=/home/bbs/files ExecStart=/usr/local/sbin/binkd /home/bbs/files/ftn/binkd.conf ExecStop=/usr/bin/pkill -15 binkd Restart=on-failure
[Install]
WantedBy=multi-user.target
---end---
To enable them, copy the unit files to "/etc/systemd/system" and enable
them like this:
sudo systemctl enable magicka.system
sudo systemctl enable magickbink.system
Start/stop/inspect them like this:
sudo systemctl start magicka.system
sudo systemctl stop magicka.system
sudo systemctl status magicka.system
A status looks something like this:
---start---
# systemctl status magickbink.service
? magickbink.service - Magicka BINKD service
Loaded: loaded (/etc/systemd/system/magickbink.service; enabled;
vendor preset: enabled)
Active: active (running) since Mon 2019-02-18 20:27:46 GMT; 12min ago
Main PID: 967 (binkd)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/magickbink.service
ÃÄ967 binkd: server manager (listen 24555)
ÀÄ968 binkd: client manager
Feb 18 20:27:46 magickabbs systemd[1]: Started Magicka BINKD service.
Feb 18 20:27:46 magickabbs binkd[967]: [102B blob data]
Feb 18 20:27:46 magickabbs binkd[967]: [60B blob data]
Feb 18 20:27:46 magickabbs binkd[967]: [70B blob data]
Feb 18 20:27:46 magickabbs binkd[967]: [62B blob data]
---end---
And just to see whether it is actually running as the right user:
---start---
# ps axuf | grep [b]inkd
bbs 967 0.0 0.3 10788 1968 ? Ss 20:27 0:00 binkd:
server manager (listen 24555) bbs 968 0.0 0.0 10788 232 ?
S 20:27 0:00 \_ binkd: client manager ---end---
And the same thing for Magicka itself:
---start---
# ps axuf | grep [m]agicka
bbs 434 0.0 1.4 102204 7460 ? Ssl 20:17 0:00 /home/bbs/bbs/magicka /home/bbs/bbs/config/bbs.ini bbs 530 0.0
0.6 94008 3356 ? S 20:17 0:00 \_ /home/bbs/bbs/magicka /home/bbs/bbs/config/bbs.ini ---end---
I must say that even though I am far from being a systemd fanboy, in this
case it proved to be rather useful.
Cheerio,
Jan Henkins
--- MagickaBBS v0.12alpha (Linux/x86_64)
+ Origin: UnderZaNet BBS,
ssh://bbs.under.za.net:2024 (@8)
* Origin: FTN-MNET Gateway (21:1/50)