我使用的是 CentOS 7。如何找出服务无法启动的原因?我创建了这个服务
[rails@server ~]$ sudo cat /usr/lib/systemd/system/nodejs.service
[Unit]
Description=nodejs server
[Service]
User=rails
Group=rails
ExecStart=/home/rails/NodeJSserver/start.sh
ExecStop=/home/rails/NodeJSserver/stop.sh
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
该文件指向此
[rails@server ~]$ cat /home/rails/NodeJSserver/start.sh
#!/bin/bash
forever start /home/rails/NodeJSserver/server.js
Run Code Online (Sandbox Code Playgroud)
我可以自己运行这个文件。但是当我尝试将它作为服务的一部分运行时,我注意到我的 nodeJS 服务器没有启动。即使我检查“sudo systemctl --state=failed”,我也看不到任何错误......
[rails@server ~]$ sudo systemctl enable NodeJSserver
[rails@server ~]$ sudo systemctl start NodeJSserver
[rails@server ~]$
[rails@server ~]$
[rails@server ~]$ forever list
info: No forever processes running
[rails@server ~]$
[rails@server ~]$
[rails@server ~]$ sudo systemctl --state=failed
UNIT LOAD ACTIVE SUB DESCRIPTION
? nginx.service loaded failed failed The nginx HTTP and …Run Code Online (Sandbox Code Playgroud) 当我启动我的 Debian 系统时,它的启动挂起大约 2 分钟:
Loading, please wait...
[ 5.191043] systemd-fsck[129]: /dev/mmcblk0p2: clean, 234192/873120 files, 2335263/3491328 blocks
[ 6.645242] intel_rapl: no valid rapl domains found in package 0
[ 6.643682] systemd-fsck[222]: fsck.fat 3.0.27 (2014-11-12)
[ 6.664844] intel_rapl: no valid rapl domains found in package 0
[ 6.660702] systemd-fsck[222]: /dev/mmcblk0p1: 3 files, 33/130812 clusters
[ **] A start job is running for LSB: Raise network interf...38s / no limit)
Run Code Online (Sandbox Code Playgroud)
最终,它放弃提升网络接口并继续启动。
问题:如何更改 中使用的超时systemctl,以便在 15 秒后停止尝试提升网络接口?
附加信息:问题的根源是在这台机器上使用了 wifi USB …
这是一个关于用户空间应用程序的问题,但听我说!
可以这么说,启动 Linux 的功能性发行版需要三个“应用程序”:
Bootloader - 对于嵌入式,通常是 U-Boot,虽然不是硬性要求。
内核 - 这很简单。
根文件系统 - 没有它就无法引导到 shell。包含内核引导到的文件系统,其中init称为 form。
我的问题是关于#3。如果有人想构建一个极小的 rootfs(对于这个问题,我们假设没有 GUI,只有 shell),启动到 shell 需要哪些文件/程序?
我的问题是,我的Debian安装在启动时显示灰色屏幕并引导到控制台,而不是gnome.
当我X手动启动时startx一切正常,因此 DE 似乎正在运行。
在早期启动期间,我收到以下错误消息:
[sdb] No Caching mode page found
[sdb] Assuming drive cache: write through
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,这实际上只是一条无害的信息消息,而不是实际错误。sdb是我的 U 盘,它不使用缓存。
问题是,我有意将内核日志级别设置为 4,以摆脱这些无用的信息消息。
为什么我仍然会收到此信息消息?
它困扰我的原因是,它干扰了我的密码提示(用于解密我的 LUKS 磁盘)
有没有办法摆脱这个消息?
我已经完全更新了 Linux Mint 17.3。
我需要添加一堆应用程序来启动。
问题是,以下对话框不起作用 - 它不会从列表中向我添加应用程序,也不会添加任何自定义命令。
无论如何,必须有其他方法可以手动添加这些应用程序,可能是通过编辑一些启动文件?
我在硬盘上安装了 Linux (Debian Jessie)。驱动器 - sda1、 ext4fs 和sda2- 交换
我有一个/chroot文件夹。在/chroot文件夹中安装了另一个系统。
题:
如何告诉引导管理器,不引导主系统(主系统,Debian Jessie),而是引导/chroot 中的系统?可能,改变/menu.lst和/chroot/etc/fstab?(vmlinuz root=/dev/sda1/chroot?)
或者问题的另一个变体:是否有可能将 linux 安装在分区的根目录中而不是安装在文件夹中?( /another_linux/bin, /another_linux/home, /another_linux/etc, ...)
我正在运行 Debian 7 Wheezy,只要有功能齐全的互联网连接,我就需要在启动时启动一些屏幕。但是,如果互联网连接中断并再次连接,则不会。所以只有在启动后的第一个功能性互联网连接上。
您能否为此发布一个虚拟脚本并告诉我将它放在哪里并使其在给定条件下执行?
脚本只需要启动屏幕然后终止,但屏幕应该继续。
编辑
我已经听说过这个/etc/network/if-up.d/文件夹。但是,如果互联网连接丢失然后重新建立,我如何确保脚本不会再次执行?
我正在尝试调试为什么某些应用程序无法自动启动(自动启动包)。
前提:我的最终目标是了解为什么自动启动序列被破坏(可能是由于某些包的自动启动失败)。Debian 8 本身可以正常启动,但自动启动功能无法正常工作。
所以我想查看引导日志(在 /var/log/daemon 中我没有找到我要找的东西)。
根据Debian Wiki,我应该在/var/log/boot处对引导日志进行处理,而无需在 Debian 8 中进行任何配置。
但是文件不存在。
维基还说:
如果您使用 systemd 作为您的初始化系统,您可能需要使用
systemctl来调试引导问题。
所以我试过
须藤系统
但我收到一个错误
尝试作为用户实例运行,但未设置 $XDG_RUNTIME_DIR。
如手册页所述,
systemctl --now enable servicename
Run Code Online (Sandbox Code Playgroud)
应该启用并启动服务。
但在许多不同的发行版下,它对我来说从来没有用过。
而输出:
systemctl is-enabled 启用,
systemctl is-active 该服务仍处于非活动状态。
这个开关有什么用?
我尝试过其他组合,例如:
systemctl enable --now servicename
Run Code Online (Sandbox Code Playgroud)
和:
systemctl enable servicename --now
Run Code Online (Sandbox Code Playgroud)
但还是一样;我systemctl start servicename每次都必须手动,即使上一个命令(即enable部件)成功执行。
应用程序对systemd服务的实现是否应该支持它在单元文件中的某处实现该功能;许多知名服务没有遵循,这让我认为它完全无用;我假设考虑过它。