![Ubuntu Server 的 Chkconfig 替代品?](https://linux22.com/image/805552/Ubuntu%20Server%20%E7%9A%84%20Chkconfig%20%E6%9B%BF%E4%BB%A3%E5%93%81%EF%BC%9F.png)
我已经非常习惯于使用 Redhat/RHEL 平台来管理服务启动,chkconfig
尽管这似乎不是 Debian/Ubuntu 的方式 - 如何在 Ubuntu 上更新系统服务的运行级别信息?
最终寻找的等价物是:
chkconfig --add <service>
chkconfig --level 345 <service> on
chkconfig --del <service>
答案1
相当于chkconfig
update-rc.d
你寻求的等价物是
update-rc.d <service> defaults
update-rc.d <service> start 20 3 4 5
update-rc.d -f <service> remove
看这个有用的页面有关详细信息或请查看 man update-rc.d
答案2
我认为最好的替代方案是 sysv-rc-conf,安装时只需运行以下命令:
sudo apt-get install sysv-rc-conf
安装后运行命令:
sudo sysv-rc-conf
您可以选中或取消选中启动任何执行级别的服务的选项,甚至可以从此控制台停止或启动服务。它是永久启用或禁用应用程序以启动 ubuntu 的必不可少的工具。如果您需要快速更改,则可以使用 CLI 界面:
例如,在执行级别 3 和 5 停止 ssh:
sysv-rc-conf-off level 35 ssh
Atd 在运行级别 2、3、4 和 5 中启动:
sysv-rc-conf on atd
如果您想了解更多信息:
man sysv-rc-conf
答案3
目前,稳定版本中没有与 Upstart 脚本相当的版本。Jacob Peddicord 为他的 Google Summer of Code 项目编写了 jobservice(后端守护程序)和 jobs-admin(与其对话的 GTK+ GUI)。Lucid 软件包包括在他的 PPA 中。它们也存在于 Maverick 的 Universe 中。目前还没有 jobservice 的命令行前端,只有 jobs-admin。
答案4
让我们从零走向目标——如何一步一步地实现。
步骤1:让我们写一个 hello world
cat >> /var/tmp/python/server.py <<\EOF
#/usr/bin/python
import time
while True:
print "hello> YES Bello"
time.sleep(30)
EOF
第2步:让我们让我们的 hello world 应用程序 server.py 自动化
cat >> /var/tmp/myserver.sh <<\EOF
#!/bin/sh
script='/var/tmp/python/server.py'
export DISPLAY=:0.0 && /usr/bin/python $script &
EOF
chmod +x /var/tmp/myserver.sh
cat >> /etc/init.d/myserver <<\EOF
#! /bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/var/tmp/myserver.sh
PIDFILE=/var/run/myserver.pid
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting feedparser"
start_daemon -p $PIDFILE $DAEMON
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping feedparser"
killproc -p $PIDFILE $DAEMON
PID=`ps x |grep server.py | head -1 | awk '{print $1}'`
kill -9 $PID
log_end_msg $?
;;
force-reload|restart)
$0 stop
$0 start
;;
status)
status_of_proc -p $PIDFILE $DAEMON atd && exit 0 || exit $?
;;
*)
echo "Usage: /etc/init.d/atd {start|stop|restart|force-reload|status}"
exit 1
;;
esac
exit 0
EOF
chmod +x /etc/init.d/myserver
chmod -R 777 /etc/init.d/myserver
步骤3:
$ update-rc.d myserver defaults
update-rc.d: warning: /etc/init.d/myserver missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
Adding system startup for /etc/init.d/myserver ...
/etc/rc0.d/K20myserver -> ../init.d/myserver
/etc/rc1.d/K20myserver -> ../init.d/myserver
/etc/rc6.d/K20myserver -> ../init.d/myserver
/etc/rc2.d/S20myserver -> ../init.d/myserver
/etc/rc3.d/S20myserver -> ../init.d/myserver
/etc/rc4.d/S20myserver -> ../init.d/myserver
/etc/rc5.d/S20myserver -> ../init.d/myserver
- 因此在步骤 3 中,系统在启动时将自动执行 server.py 作为守护进程,并使其易于自动化
希望它有帮助。