我无法hostapd作为服务启动。当我尝试启动它时失败:
$ sudo service hostapd start
[FAIL] Starting advanced IEEE 802.11 management: hostapd failed!
Run Code Online (Sandbox Code Playgroud)
据我了解,这使用了以下配置/etc/default/hostapd:
$ cat /etc/default/hostapd
# Defaults for hostapd initscript
#
# See /usr/share/doc/hostapd/README.Debian for information about alternative
# methods of managing hostapd.
#
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
#DAEMON_CONF=""
DAEMON_CONF=”/etc/hostapd/hostapd.conf”
# Additional daemon …Run Code Online (Sandbox Code Playgroud) Whenever I try to install something using apt-get I get the error messages involving insserv. I have tried install many different packages but everything give same error. And apparently, CUPS package is doing/has done something because every error message involves it. The following are the errors displayed when I ran sudo apt-get install wine1.8 winetricks:
After this operation, 716 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Extracting templates from packages: …Run Code Online (Sandbox Code Playgroud) ubuntu 的/etc/init.d目录(功能上)与我认为更标准的目录/etc/rc.d/(至少在 arch 上)完全相同吗?对于启动脚本,规范使用 init.d 而不是 rc.d 是否有任何特殊原因?
我正在尝试在 Debian 8.5 机器上运行 MongoDB。当我安装这个包(从 percona.com 预先构建)时,我注意到以下文件:
/etc/init.d/mongod (1)
/lib/systemd/system/mongod.service (2)
Run Code Online (Sandbox Code Playgroud)
我知道它/etc/init.d/mongod在启动时或在其他特定系统状态下被调用,只要它是通过update-rc.d. 这对我来说完全没问题。该脚本初始化并启动 mongo 守护进程。它似乎有启动、停止、重启等的“触发器”,据我所知,我可以用sudo service mongod <action>.
/lib/systemd/system/mongod.service 似乎做同样的事情(即运行 mongo),但配置较少 - ExecStart 参数中只有一行:
[Unit]
Description=MongoDB (High-performance, schema-free document-oriented database)
After=time-sync.target network.target
[Service]
Type=forking
User=mongod
Group=mongod
PermissionsStartOnly=true
EnvironmentFile=/etc/default/mongod
ExecStart=/usr/bin/env bash -c "/usr/bin/mongod $OPTIONS > ${STDOUT} 2> ${STDERR}"
PIDFile=/var/run/mongod.pid
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
据我了解,这可以通过sudo systemctl start mongod.
我不明白是否在启动时调用。
我不明白为什么需要这些“服务”文件中的两个,以及如何摆脱一个(可能是 /lib/systemd 中的一个,因为它简单得多)。
我不明白这两者之间是否有任何关系。
我也读过它也systemctl适用于init.d脚本,在这种情况下,我不明白这两个文件中的哪一个将由systemctl mongod start.
我认为有一些冗余,我应该只选择两种方式之一。我想确定它是
我正在阅读有关设置自定义 initramfs的教程,其中指出:
唯一缺少的是 /init,它是 initramfs 根目录中的可执行文件,一旦加载内核就会执行。因为 sys-apps/busybox 包含一个功能齐全的 shell,这意味着您可以将 /init 二进制文件编写为一个简单的 shell 脚本(而不是使它成为一个必须编译的用汇编程序或 C 编写的复杂应用程序)。
并给出了一个以 init 开头的 shell 脚本示例 #!/bin/busybox sh
到目前为止,我的印象是 init 是启动的主进程,所有其他用户空间进程最终都是 init 的子进程。但是,在给定的示例中,第一个进程实际上是bin/busybox/ sh从中产生后来的 init 的。
这是正确的解释吗?例如,如果我当时有一个可用的解释器,我可以将 init 编写为 Python 脚本等吗?
我对哪种情况最好以及在哪种情况下感到困惑:
invoke-rc.d apache2 restart
Run Code Online (Sandbox Code Playgroud)
或者
service apache2 restart
Run Code Online (Sandbox Code Playgroud)
有真正的区别吗?
man service 有以下有趣的一点:
service 在尽可能可预测的环境中运行 System V init 脚本,删除大多数环境变量并将当前工作目录设置为 /。
我主要对 Debian 感兴趣,但也对 Mint(也基于 Debian)感兴趣。
将根文件系统挂载ro在 initramfs(和 initrd)中的原因是什么。
例如,Gentoo initramfs 指南使用以下命令挂载根文件系统:
mount -o ro /dev/sda1 /mnt/root
Run Code Online (Sandbox Code Playgroud)
为什么不是下面的?
mount -o rw /dev/sda1 /mnt/root
Run Code Online (Sandbox Code Playgroud)
我可以看到可能有一个很好的理由(并且可能涉及switchroot),但是似乎没有任何地方记录。
我有一个 shell 脚本,它本质上是一个带有一些日志记录的单行代码,我试图从一个 init 脚本运行它。我正在使用daemon里面的函数/etc/init.d/functions来运行它,因为 Redhat 似乎没有start-stop-daemon可用。当我调用 init 脚本 ( /etc/init.d/script start) 时,它停留在前台,而不是完成并让进程继续运行。我让这个脚本守护进程的正确方法是什么?
要运行的脚本:
# conf file where variables are defined
. /etc/script.conf
echo "Starting..." | logger -i
echo "Monitoring $LOG_LOCATION." | logger -i
echo "Sending to $MONITOR_HOST:$MONITOR_PORT." | logger -i
tail -n 1 -F $LOG_LOCATION |
grep WARN --line-buffered |
/usr/bin/nc -vv $MONITOR_HOST $MONITOR_PORT 2>&1 |
logger -i
Run Code Online (Sandbox Code Playgroud)
初始化脚本:
#!/bin/bash
# Source Defaults
. /etc/default/script
# Source init functions
. /etc/init.d/functions
prog=/usr/local/bin/script.sh …Run Code Online (Sandbox Code Playgroud) 我设法创建了一个小型且功能齐全的实时 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没有 find (or read) /etc/inittab。/etc/inittab. 所以,我删除了/initand/etc/inittab并猜猜是什么 - 内核再次恐慌。/sbin/init从我的外壳经过几次猜测,其中包括exec /sbin/init,setsid /sbin/init和exec setsid /sbin/init我结束了内核崩溃。文件系统上存在和不存在 /etc/inittab 的情况。 …近 5 年后我一直在使用 Linux,并观察到引导过程几乎被抽象化了。我的意思是,用户看不到幕后发生的事情(由于启动画面等)。现在,这可能对最终用户有好处,但对极客来说却不是 :)
我想带回旧时代的冗长。这是我所做的:
通过从命令行中删除“splash”和“quiet”参数,我已经能够摆脱其中的一些。但是,我仍然看不到正在启动的服务(如init.d 中的服务)。
我认为这是因为 init 守护进程被新贵取代了。是否有一些配置文件我可以调整以恢复正在发生的事情的详细程度。
此外,一旦登录屏幕出现,它就会清除引导日志历史记录。有没有办法禁用它?
注意:我知道我可以通过简单地将发行版切换到 Arch 或 Slackware 来做到这一点。但我不想那样做。
init-script ×10
linux ×6
ubuntu ×3
boot ×2
init ×2
services ×2
sysvinit ×2
busybox ×1
cups ×1
debian ×1
hostapd ×1
init.d ×1
initramfs ×1
kernel ×1
linux-mint ×1
networking ×1
rhel ×1
shell-script ×1
startup ×1
systemd ×1