Questions tagged «sysvinit»

SysVinit是一组程序和脚本,用于控制所有其他程序的启动,运行和关闭。

2
systemd如何使用/etc/init.d脚本?
我只是改用了debian jessie,大多数情况都可以正常运行,包括我的图形显示管理器wdm。 问题是,我只是不了解它是如何工作的。显然,我的/etc/init.d/wdm脚本被调用了,因为当我exit在其中放早时,wdm没有启动。但是,当我选择重命名/etc/rc3.d目录(我的默认运行级别以前是3)时,wdm仍然会启动。 我无法找到systemd如何找到该脚本,也无法理解它对所有其他init.d脚本的作用。 systemd何时以及如何运行init.d脚本? 从长远来看,我应该摆脱所有init.d脚本吗?

3
Debian中的服务如何工作,如何管理它们?
在Windows中,我有服务管理器,在其中可以看到所有可以通过Windows本身启动的系统服务,可以设置它使用的用户,权限管理位于其中,还可以将变量和其他一些信息传递给服务,我可以命名它们,也可以创建一个程序的重复服务,依此类推。所以我在Windows中有一个主要的管理工具。 我如何在Linux中做同样的事情?如何在启动时触发运行“ svnserve”,或者如何配置要在特殊上下文中运行的服务。我如何查看所有“编程”服务?

3
在启动/启动过程中运行脚本;init.d和cron @reboot
我目前正在尝试了解在系统启动/引导时运行脚本的init.dcron和cron 之间的区别@reboot。 使用的@reboot(这种方法中提到的这个论坛由hs.chandra)是一些什么比较简单,通过简单地进入crontab -e并创建一个@reboot /some_directory/to_your/script/your_script.txt,然后your_script.txt,应在每次系统启动时执行。有深入的解释@reboot是这里 或者,通过嵌入/etc/init.d/your_script.txt到脚本的第二行,即: #!/bin/bash # /etc/init.d/your_script.txt 您可以运行,chmod +x /etc/init.d/your_script.txt并且your_script.txt每次引导系统时也应运行该结果。 Q1:两者之间的主要区别是什么?Q2:哪个更强大?Q3:两者中有更好的一个吗?Q4:这是嵌入脚本以在引导过程中运行的正确方法吗? 我将合并一个bash .sh文件以在启动期间运行。

1
“活动(退出)”状态对SystemD服务意味着什么?
我正在使用一个自定义服务,该服务实际上运行一个称为thisismywebserver的Web服务器。当前,它不起作用(即,尝试访问页面时出现“无法连接”错误)。 当我运行此命令service thisismywebserver status以查看服务的状态时,我看到该状态为“活动(已退出)”。这是否意味着服务已停止工作?如果不是,那意味着什么? root@thisismywebserver-testing:~# service thisismywebserver status ● thisismywebserver.service - LSB: ThisIsMyWebServer server Loaded: loaded (/etc/init.d/thisismywebserver) Active: active (exited) since Sun 2015-11-08 23:01:33 EST; 18h ago Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

2
如何更改系统服务超时值?
在我现在正在工作的公司中,有一个旧版服务,它的初始化脚本使用的是旧的SysvInit,但是在systemd(CentOS 7)上运行。 由于计算量很大,因此此服务大约需要70秒才能完成。我没有为systemd配置任何超时,也没有在处更改默认配置/etc/systemd/system.conf,但是当我执行service SERVICE stop服务时,仍然会在60秒后超时。 检查journalctl -b -u SERVICE.service我发现此日志: Sep 02 11:27:46 service.hostname systemd[1]: Stopping LSB: Start/Stop Sep 02 11:28:46 service.hostname SERVICE[24151]: Stopping service: Error code: 255 Sep 02 11:28:46 service.hostname SERVICE[24151]: [FAILED] 我已经尝试过将DefaultTimeoutStopSec属性更改/etc/systemd/system.conf为90s,但是仍然发生超时。 有谁知道为什么它在60秒超时?还有其他地方可以配置此超时值吗?有什么办法可以检查吗? 该服务与Java 7一起运行并使其守护进程,它使用JSVC。我-wait使用value 配置了参数120。

4
Linux中“ /etc/init.d”和“ /etc/rcX.d”目录之间的连接是什么?
我正在从一本名为《Linux命令行和Shell脚本圣经,第二版》的书中学习命令行。该书指出: 一些Linux实现包含一张在启动时自动启动的进程表。在Linux系统上,该表通常位于特殊文件/ etc / inittabs中。 其他系统(例如流行的Ubuntu Linux发行版)则使用/etc/init.d文件夹,该文件夹包含用于在启动时启动和停止各个应用程序的脚本。脚本通过/etc/rcX.d文件夹下的条目启动,其中X是运行级别。 可能是因为我是Linux新手,所以我不明白第二段引用的含义。有人可以用更简单的语言来解释吗?

5
如何为Shell脚本创建服务,以便可以像守护程序一样启动和停止它?
我使用CentOS 7的目的是每五秒钟创建一个cron,但正如我研究的那样,我们只能使用一分钟的cron,所以我现在要做的是创建一个shell文件。 hit.sh while sleep 5; do curl http://localhost/test.php; done 但是我已经通过右键单击来手动点击它。 我想要的是为该文件创建服务,以便我可以自动启动和停止它。 我找到了创建服务的脚本 #!/bin/bash # chkconfig: 2345 20 80 # description: Description comes here.... # Source function library. . /etc/init.d/functions start() { # code to start app comes here # example: daemon program_name & } stop() { # code to …

4
是否有在Linux上启动和停止服务的标准方法?
直到最近,还存在一种简单有效的启动/停止/重新启动服务的方法: service nginx start|stop|restart 多年来,它一直运行良好,...直到一些智能裤决定改进它们,现在我面对的是Debian / Ubuntu系统,该service脚本什么也不做(因为我应该使用类似的东西systemctl start nginx.service(更长的时间,无法自动完成工作,...) 我的问题专门针对Debian和Ubuntu,但也涵盖CentOS / RedHat发行版也会有所帮助。 因此,有什么可以使我免受这一注定的变化的困扰吗? 如果不清楚,我正在寻找一种一致的方式来处理这些问题,一种可以在Debian 7.x,8.x,最新的Ubuntu LTS和非LTS上运行的方法。 PS。在此特定问题的范围之外,但是如果解决方案还涵盖了服务的启用和禁用部分,则可以给予额外的荣誉。

3
系统生成和进程生成
通常不要在这里发布信息,但是我正在把头发撕掉。我有一个Python脚本,它在启动时会分叉,并负责启动其他一系列进程。该脚本曾经在启动时通过sysvinit启动,但是最近我升级到Debian Jessie,因此对其进行了修改,使其可以通过systemd启动。 不幸的是,我遇到了一个我无法解决的问题。当您直接在用户外壳程序中启动脚本时,它将正确启动其子进程,并且当脚本退出时,子进程将被孤立并继续运行。 通过systemd启动时,如果父进程退出,则子进程也全部退出(嗯,它们在其中启动的Screen消失并显示为Dead ???)。 理想情况下,我需要能够在不终止所有子进程的情况下重新启动父脚本,我是否缺少某些东西? 谢谢! [Unit] Description=Server commander After=network.target [Service] User=serveruser Type=forking PIDFile=/var/Server/Server.pid ExecStart=/var/Server/Server.py ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target 编辑:我可能需要指出Python脚本本质上是其子进程的“控制器”。它根据中央服务器的请求在gnu屏幕中启动和停止服务器。它通常一直在运行,不会生成服务并退出。但是在某些情况下,我希望能够在不终止子进程的情况下重新加载脚本,即使这意味着这些进程被孤立为pid1。实际上,即使Python脚本以如下方式启动进程也没有关系:父进程,如果可能的话。 关于其工作原理的更好解释: Systemd产生/Server.py Server.py分叉并为Systemd写入pid文件 然后,Server.py根据其指示在gnu屏幕中生成服务器进程 Server.py继续运行以执行从服务器请求的任何重新启动 在不使用Systemd的情况下启动时,可以重新启动Server.py,并且启动的gnu屏幕不受影响。使用Systemd启动时,当Server.py关闭时,它们会被杀死,而不是将这些屏幕进程孤立为pid 1。

2
如何确定在Debian中以什么顺序加载/etc/init.d脚本?
我想先运行一个sysvinit脚本,然后弄清楚该怎么做。 为了确保,这实际上是按照我喜欢的顺序进行的,我想查看一个列表,按照这种顺序进行。 我sudo insserv --showall已经找到了,但是无法说明问题,因为它多次列出了初始化脚本。 如何确定在Debian中以什么顺序加载/etc/init.d脚本?

1
带有内核和BusyBox的最小Linux:/ etc / inittab被忽略,仅执行/ init
我设法创建了一个小型且功能齐全的实时Linux CD,其中仅包含内核(使用默认选项编译)和BusyBox(使用默认选项+静态编译,所有小程序都包括在内/sbin/init)。我没有问题,建立initrd和填充/dev,/proc并且/sys也是我在所有与我没有任何问题/initshell脚本。 最近,我读到BusyBox支持/etc/inittab配置(至少在某种程度上),我非常想执行以下任一操作: 忘记我的/initshell脚本,完全依靠/etc/inittab配置。 同时使用/initShell脚本和/etc/inittab配置。 现在是实际问题- /etc/inittab当我的发行版启动时,似乎完全被忽略了。症状是: 当我删除/init并离开时,/etc/inittab我最终会陷入内核崩溃。我的假设是内核根本不执行/sbin/init,或者/sbin/init根本找不到(或读取)/etc/inittab。 我读到即使没有,BusyBox也应该可以正常工作/etc/inittab。因此,我同时删除了两者/init,/etc/inittab然后猜测是什么-再次出现内核恐慌。 我试图执行/sbin/init从我的外壳经过几次猜测,其中包括exec /sbin/init,setsid /sbin/init和exec setsid /sbin/init我结束了内核崩溃。文件系统上同时存在和不存在/ etc / inittab。 这是我的/initshell脚本的内容: #!/bin/sh dmesg -n 1 mount -t devtmpfs none /dev mount -t proc none /proc mount -t sysfs none /sys setsid cttyhack /bin/sh 在这一点上,我不在乎它的内容/etc/inittab,只要我有办法知道那里的配置确实有效。我尝试了几种/etc/inittab配置,所有这些配置都是基于在这里找到的信息。 作为最低要求,我的/ etc / inittab仅包含以下这一行: ::sysinit:/bin/sh 再次-我最终陷入内核恐慌,似乎/etc/inittab被忽略了。 /etc/inittab非常感谢任何有关如何强制我的小型现场发行版与BusyBox配合使用的建议! 更新: 为了清楚起见,使用和不使用当前的shell脚本,我都不会遇到内核崩溃的麻烦。一切正常,我的控制台运行良好,没有任何意外的麻烦。唯一的问题是,正如我上面所述,它被完全忽略了。/init/etc/inittab/bin/ash/etc/inittab …

1
/ var / run中* .pid文件的含义/用途是什么
我在Linux领域还很陌生,现在我正试图了解FHS原则。 在中,/var/run我发现了大约十个*.pid文件crond.pid,其中仅包含PID。 系统中运行着十多个进程,只有十个文件。 那么,它们的目的是什么?产生它们的原因是什么?


2
将socat初始化脚本迁移到systemd
我在sysVinit的debian 7.2上将socat与以下init脚本一起使用。它完美地工作: #!/bin/bash DESC=socat DAEMON=/usr/bin/socat LIB=/usr/lib/socat SOCAT_ARGS="-d -d -lf /var/log/socat.log" [ ! -f /etc/default/socat.conf ] || . /etc/default/socat.conf . /lib/lsb/init-functions PATH=/bin:/usr/bin:/sbin:/usr/sbin [ -x $DAEMON ] || exit 0 # # Try to increase the # of filedescriptors we can open. # maxfds () { [ -n "$SOCAT_MAXFD" ] || return …

2
如何在基于Debian的发行版中用systemd替换sysvinit?
我在Debian安装中使用systemd已有一段时间了,只是为了使其成为可能,我必须在/etc/default/grub文件中添加启动参数以使其起作用,该参数已添加到Ubuntu启动参数中。Ubuntu尚未安装systemd,因此我必须将其删除,否则引导可能会失败。因此,我正在寻找一种用systemd替换sysvinit并删除boot参数的方法,我该怎么做?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.