我已经非常习惯使用chkconfig在Redhat / RHEL平台上管理服务启动,尽管这似乎不是Debian / Ubuntu的方式-如何在Ubuntu上更新系统服务的运行级别信息?

最终寻找的等效项:

chkconfig --add <service>
chkconfig --level 345 <service> on
chkconfig --del <service>


评论

顺便说一句:您也可以在ubuntu上apt-get install chkconfig软件包。但是,由于多年以来它已被打破,以下符号链接将使其(某种程度上)起作用:ln -s / usr / lib / insserv / insserv / insserv / sbin / insserv

#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