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