标签: sysvinit

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 脚本吗?

init-script systemd init sysvinit

153
推荐指数
2
解决办法
19万
查看次数

如何确定系统是否使用 SysV、Upstart 或 Systemd initsystem

是否有一种简单的方法可以找出正在使用的 initsystem,例如最近的系统Debian wheezyFedora系统正在使用哪个 initsystem ?我知道Fedora 21使用systemdinitsystem 但那是因为我读过它并且因为所有相关的脚本/符号链接都存储在/etc/systemd/. 但是,我不确定例如Debian squeezeCentOS 6 or 7等等。

有哪些技术可以验证这种初始化系统?

linux systemd init upstart sysvinit

97
推荐指数
4
解决办法
11万
查看次数

Debian 中的服务如何工作,我该如何管理它们?

在 Windows 中,我有服务管理器,在那里我可以看到所有系统服务,这些服务可以通过 Windows 本身启动,我设置了它使用的用户,权限管理在那里,我可以将变量和其他一些信息传递给服务,我可以命名它们,我可以创建一个程序的重复服务等等。所以我在 Windows 中有一个主要的管理工具。

我如何在 Linux 中做同样的事情?如何在启动时触发运行“svnserve”,或者如何将服务配置为在特殊上下文中运行。如何查看所有“程序化”服务?

startup subversion debian services sysvinit

86
推荐指数
2
解决办法
24万
查看次数

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.
Run Code Online (Sandbox Code Playgroud)

linux systemd services sysvinit

74
推荐指数
2
解决办法
12万
查看次数

在 PuTTY 或终端关闭后保持进程运行

我在Raspbian (Debian) 机器上运行Node.js服务器,我想远程启动和停止服务器。这对我来说意味着使用PuTTY访问 shell,除非当我关闭 PuTTY 终端或超时时,我的服务器会随之关闭,因为我只是在前台执行我的服务器。

有没有办法让它继续下去,但之后仍然有办法终止进程?

ssh session services sysvinit

70
推荐指数
4
解决办法
29万
查看次数

如何更改systemd服务超时值?

在我现在工作的公司中,有一个遗留服务,它的 init 脚本使用旧的 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]
Run Code Online (Sandbox Code Playgroud)

我已经尝试将DefaultTimeoutStopSec属性更改/etc/systemd/system.conf90s,但超时仍然发生。

有谁知道为什么它会在 60 秒超时?是否还有其他地方配置了此超时值?有什么方法可以检查吗?

该服务与 java 7 一起运行并对其进行守护,它使用JSVC。我-wait用值配置了参数120

centos systemd sysvinit

62
推荐指数
3
解决办法
16万
查看次数

在引导/启动期间运行脚本;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,应在每次系统启动时执行。的深入解释@reboothere

或者通过嵌入/etc/init.d/your_script.txt到脚本的第二行,即:

#!/bin/bash
# /etc/init.d/your_script.txt
Run Code Online (Sandbox Code Playgroud)

您可以运行,chmod +x /etc/init.d/your_script.txt并且your_script.txt每次系统启动时也应该运行。

Q1:两者的主要区别是什么?
Q2:哪个更健壮?
Q3:两者中是否有更好的一个?
Q4:这是嵌入脚本以在启动期间运行的正确方法吗?

我将合并一个 bash .sh 文件以在启动期间运行。

startup scripting cron init-script sysvinit

55
推荐指数
2
解决办法
14万
查看次数

检查系统是否在 BASH 中使用 systemd 或 sysvinit 的便捷方法?

我正在定义要在不同发行版中使用的通用 bash 文件。我需要一种方法来检查系统是使用 systemd 还是 sysvinit (/etc/init.d/)。我需要这个,所以我运行适当的命令来启动服务。检查这个的安全方法是什么?我目前检查 systemctl 命令是否存在,但这真的是一个选项,因为可能存在 systemctl 命令可用的情况,但这并不一定意味着实际使用了 systemd?

这是我当前 bash 脚本的摘录:

#!/bin/sh
if [ command -v systemctl >/dev/null ]
then
    systemctl service start
else
    /etc/init.d/service start
fi
Run Code Online (Sandbox Code Playgroud)

linux scripting systemd sysvinit

53
推荐指数
1
解决办法
9万
查看次数

如何为 shell 脚本创建服务,以便我可以像守护进程一样启动和停止它?

我正在使用 CentOS 7,我的目标是每五秒创建一个 cron,但正如我研究的那样,我们只能使用 cron 一分钟,所以我现在正在做的是我创建了一个 shell 文件。
命中.sh

while sleep 5; do curl http://localhost/test.php; done
Run Code Online (Sandbox Code Playgroud)

但我通过右键单击它手动点击了它。

我想要的是为该文件创建一个服务,以便我可以自动启动和停止它。

我找到了创建服务脚本

#!/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 stop app comes here 
    # example: killproc program_name
}

case "$1" in 
    start)
       start
       ;;
    stop)
       stop
       ;;
    restart)
       stop
       start …
Run Code Online (Sandbox Code Playgroud)

cron centos shell-script services sysvinit

38
推荐指数
3
解决办法
25万
查看次数

Linux 中“/etc/init.d”和“/etc/rcX.d”目录之间有什么联系?

我正在从一本名为“ Linux 命令行和 Shell 脚本圣经,第二版”的书中学习命令行。这本书是这么说的:

一些 Linux 实现包含一个在启动时自动启动的进程表。在 Linux 系统上,该表通常位于特殊文件 /etc/inittabs 中。

其他系统(例如流行的 Ubuntu Linux 发行版)使用 /etc/init.d 文件夹,其中包含用于在启动时启动和停止单个应用程序的脚本。脚本通过 /etc/rcX.d 文件夹下的条目启动,其中 X 是运行级别。

可能因为我是 linux 新手,我不明白引用的第二段是什么意思。有人可以用更简单的语言解释相同的内容吗?

linux init-script sysvinit

26
推荐指数
2
解决办法
3万
查看次数