chkconfig
在Redhat / RHEL平台上管理服务启动,尽管这似乎不是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
评论
update-rc.d仅用于打包脚本,不能用于人类。它还适用于Ubuntu不使用的初始化脚本。 Ubuntu使用Upstart。
– maco
10年8月14日在17:22
“请注意,该程序是为在软件包维护程序脚本中使用而设计的,因此仅具有此类脚本所需的非常有限的功能。不鼓励系统管理员使用update-rc.d来管理运行级别。他们应编辑链接直接或使用运行级别编辑器,例如sysv-rc-conf和bum代替。”从手册页:manpages.ubuntu.com/manpages/hardy/man8/update-rc.d.8.html
– maco
2010年8月14日20:12
我接受此答案,因为更新的手册页已删除该警告。 manpages.ubuntu.com/manpages/lucid/man8/update-rc.d.8.html
– Marco Ceppi♦
2010年8月15日在19:16
仍然没有改变这样的事实,即,Ubuntu现在甚至不使用SysV初始化脚本,而update-rc.d仅适用于它们。
– maco
2010年8月15日23:49
仍然有一些sysv脚本被使用,特别是它们也可以与新贵一起使用。因此,如果您没有时间转换脚本,您可能仍会以这种方式使用它。
–eckes
2015年2月10日在2:40
#2 楼
最佳替代IMHO是sysv-rc-conf要安装,只需运行以下命令:
sudo apt-get install sysv-rc-conf
一旦安装,请运行以下命令:
sudo sysv-rc-conf
您可以选中或取消选中在任何执行级别上启动服务的选项,甚至可以从此控制台停止或启动服务。它是永久启用或禁用应用程序以启动ubuntu不可或缺的工具。
如果需要快速更改,则可以使用CLI界面:
例如停止ssh在执行的第3级和第5级:
sysv-rc-conf-off level 35 ssh
Atd在运行级2、3、4和5中启动:
sysv-rc-conf on atd
如果您想了解更多:
man sysv-rc-conf
评论
这正是我所需要的,除了我关闭了sysv-rc-conf apache2 /关闭了sysv-rc-conf apache2等。
–亚当·K·迪恩(Adam K Dean)
2014年1月15日14:47
这与比较update-rc.d的文件对我有用,后者在/etc/init.d/目录中寻找未安装某些程序(如vsftpd的程序)的脚本。
– David Okwii
14-10-29在7:58
在Ubuntu 14.04上为我工作
– Hashid Hameed
2015年9月2日,下午6:02
您有错字:sysv-rc-conf-off 35 ssh应该是sysv-rc-conf --level 35 ssh off
–满贯
16 Jan 14 '14:26
测试了在Ubuntu 16.04LTS上的工作能力,而update-rc.d没有。
– Sopalajo de Arrierez
16 Dec 15'0:36
#3 楼
目前,尚无一个稳定的发行版可用于通过Upstart脚本执行操作。 Jacob Peddicord为他的Google Summer of Code项目编写了jobservice(后端守护程序)和Jobs-admin(与其交谈的GTK + GUI)。清醒的包裹在他的PPA中。它们也存在于小牛的宇宙中。目前还没有用于jobservice的命令行前端,仅是jobs-admin。#4 楼
试试这个:apt-get install chkconfig
这至少在Ubuntu 12.04发行版上有效。
评论
在12.10上不起作用
–专家
13年2月22日在20:56
具有12.04,并且apt-get install chkconfig给出:“ E:软件包'chkconfig'没有候选安装程序”。您的/etc/apt/sources.list文件中有什么?
–约翰·利特尔
2014年3月17日在10:22
看来最新版本已发布,用于精确:12.04:1.0-79.1-2 0在http://us.archive.ubuntu.com/ubuntu/precise/universe i386软件包中。一些修复程序从未将其打包。
–eckes
2015年2月10日,下午3:03
Ubuntu 14.04上没有软件包。我们是否需要添加其他来源?
– Hashid Hameed
2015年9月2日,下午6:02
#5 楼
让我们从零到目标-逐步实现。步骤1:让我们编写一个问候世界
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应用程序服务器成为服务器。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 "" 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 }'`
kill -9 $PID
log_end_msg $?
;;
force-reload|restart)
$ 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
stop
q4312078q 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:
q4312078q
因此,在第3步中,系统将在启动时自动将server.py作为守护程序执行,并使其易于自动化
希望它能提供帮助。
评论
+1:非常有用的答案,但我认为它附有错误的问题。
–克劳斯
2014-2-27在17:53
评论
顺便说一句:您也可以在ubuntu上apt-get install chkconfig软件包。但是,由于多年以来它已被打破,以下符号链接将使其(某种程度上)起作用:ln -s / usr / lib / insserv / insserv / insserv / sbin / insserv