自动启动 smuxi-server

自动启动 smuxi-server

Smuxi(这个名字是不是很奇怪?)是一个 IRC 客户端,它具有解耦的服务器和客户端设置。服务器位于“云”中某个始终在线的计算机中,客户端从本地计算机连接到它。如果客户端计算机没有良好或可靠的连接,这尤其有用。如果客户端失去连接,它可以重新连接到服务器,并且不会丢失任何正在进行的聊天。

所以,这引出了我的问题。这Smuxi 服务器文档有点稀疏,它说

如果您希望 smuxi-server 在系统启动时自动在后台启动,请继续阅读以下部分。这高度依赖于您的操作系统,因为每个系统都提供自己的自动启动服务的方式。

然后是一些非常有启发性的空格,以“Debian”、“Ubuntu”和“Other Linux”等词开头。

该部分然后有

要始终在 Linux 服务器启动时自动启动 smuxi-server,请将其添加到 /etc/rc.local 文件中:

sudo -u your_linux_user bash -c 'nohup smuxi-server > $HOME/smuxi-server.log &'

我不确定我是否应该接受这个建议。我使用 Debian,这个脚本有这样的话

该脚本在每个多用户运行级别结束时执行。

我不确定这是什么意思。这是否意味着它会执行多次?这不是一件坏事吗?

不管怎样,我正在寻找建议(或者可能是脚本),以找到一种在启动时自动启动服务器的方法,以及一种手动运行它并自动使其后台运行的方法。我可以在屏幕内运行它,但这感觉有点……老套。

由于我使用的是 Debian wheezy,所以我想要一种可以与该系统默认设置配合使用的方法。

答案1

我不确定这是什么意思。这是否意味着它会执行多次?这不是一件坏事吗?

2不,该脚本仅在从到 的每个运行级别结束时执行一次5。在里面Debian 运行级别系统的multiuser runlevel定义是从运行级别 2 到运行级别 5。默认的 Debian 安装在它们之间没有任何区别。

在 Debian 中,默认运行级别是2.您可以通过阅读/编辑来检查/更改默认运行级别/etc/inittab

$ grep initdefault /etc/inittab 
id:2:initdefault:

不管怎样,我正在寻找建议(或者可能是脚本),以找到一种在启动时自动启动服务器的方法

根据文档的说明。我认为使用rc.local技巧足以在启动时自动启动。如果您想要更复杂的控件,您应该为smuxi-server.

你可以阅读一个例子这里或者从目录中获取脚本/etc/init.d/以供参考:

#!/bin/bash

USER=michael
GROUP=michael
PIDFILE=/var/run/smuxi.pid

case "${1:-''}" in
  'start')
        start-stop-daemon -S -c $USER -g $GROUP --make-pidfile --pidfile $PIDFILE --background --startas /usr/bin/smuxi-server -v
        ;;
  'stop')
        start-stop-daemon -K --pidfile $PIDFILE -v
        ;;
  *)
        echo "Usage: $SELF start|stop"
        exit 1
        ;;
esac

该脚本不使用最低有效位规格,但是可以用。您可以阅读man start-stop-daemon以获得更多理解。

笔记

答案2

我用的是这个系统。服务启动 smuxi-server 的文件:

/etc/systemd/system/smuxi-server.service

[Unit]
Description=smuxi irc
After=network.target

[Service]
User=yourusername

Environment=HOME=/home/yourusername
ExecStart=/usr/bin/smuxi-server

Restart=always

[Install]
WantedBy=multi-user.target

要测试它:

$ sudo systemctl start smuxi-server

要使其在系统启动时启动:

$ sudo systemctl enable smuxi-server

相关内容