在尝试删除 apache 和 tomcat,现在尝试重新安装 apache 2 后,我缺少init.d/apache2启动/停止服务器的文件。
我不确定新安装是否真的有效,而且我一开始apt-get purge apache2并没有删除所有东西!
如何获取init.d/apache2文件以测试服务器是否正确启动/安装(我手动删除了文件和目录)?
我尝试使用以下方法启动 monit:
/etc/init.d/monit start
Run Code Online (Sandbox Code Playgroud)
然后我得到错误:
[....] Starting daemon monitor: monit/etc/init.d/monit: 124: /etc/init.d/monit: start-stop-daemon: not found
failed!
Run Code Online (Sandbox Code Playgroud)
打字
which start-stop-daemon
Run Code Online (Sandbox Code Playgroud)
显示
/sbin/start-stop-daemon
Run Code Online (Sandbox Code Playgroud)
/sbin 中的 ls -al 显示
-rwxr-xr-x 1 root root 26740 Jan 21 12:18 start-stop-daemon
Run Code Online (Sandbox Code Playgroud)
编辑:添加脚本
#!/bin/sh
### BEGIN INIT INFO
# Provides: monit
# Required-Start: $remote_fs
# Required-Stop: $remote_fs
# Should-Start: $all
# Should-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: service and resource monitoring daemon
# Description: monit is a utility …Run Code Online (Sandbox Code Playgroud) 我试图从 debian 9 升级到 10,但在尝试安装systemd-sysv_241-7~deb10u6_amd64.deb. 我收到以下错误:
我的运行尝试apt --fix-broken install没有成功并导致以下相同的错误。
(Reading database ... 59371 files and directories currently installed.)
Preparing to unpack .../systemd-sysv_241-7~deb10u6_amd64.deb ...
Unpacking systemd-sysv (241-7~deb10u6) ...
dpkg: error processing archive /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb (--install):
trying to overwrite '/usr/share/man/man8/halt.8.gz', which is also in package sysvinit 2.88dsf-41+deb7u1
Processing triggers for man-db (2.7.6.1-2) ...
Errors were encountered while processing:
/var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb
Run Code Online (Sandbox Code Playgroud)
在我尝试隔离时,当我在详细模式下运行失败的命令时,我得到以下信息:
# dpkg --debug=77777 -i /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb
...
D000040: ok 2 msgs >><<
D010000: check_triggers_cycle pnow=man-db:amd64
D020000: check_triggers_cycle pnow=man-db:amd64 first
Processing …Run Code Online (Sandbox Code Playgroud) 我有一个个人程序,它有一个服务器/客户端设计。
它的服务器守护程序部分应该以其自己的受限用户身份运行,并且该程序不像某些 Linux 程序那样设计为放弃其 root 权限(如果以 root 身份启动)。
所以我的问题是,在它的启动脚本中/etc/init.d/,我应该使用sudo还是su作为另一个用户运行这个守护进程?这有什么不同吗?两者中的任何一个都可以工作吗?还有什么?
该操作系统是一个定制的 GNU/Linux 操作系统,使用“Linux From Scratch”指令构建,并且两个程序都可以正确运行。
有没有一些工具可以显示所有可用的 init 脚本(在 Debian 上),除了必须记住一个位置/etc/init.d,更不用说不是所有的东西都有一个 init 脚本?
阅读进程周围的括号是什么意思?我知道打印了可执行文件名。
Linux ps手册页:
有时进程参数将不可用;发生这种情况时, ps 将改为在括号中打印可执行文件名称。
但是ps -Awwo pid,comm,args我得到:
PID COMMAND COMMAND
1 init init [2]
Run Code Online (Sandbox Code Playgroud)
这是什么意思?“可执行名称”应该是init还是[2]?
我想可执行文件当然是init- 什么是[2]?为什么要打印?
(另外,如果它知道可执行文件名称,我真的不明白为什么它不能显示完整路径。)
在我的 Ubuntu 12.04 服务器上,我需要编写一个init.d脚本,等待infiniband接口(设备:mlx4_0,接口:ib0)完全启动,直到加载knem内核模块。
我有一个init.d脚本,如果我等到系统启动并手动运行service myscript start,它就可以工作,但如果我在启动时正常加载它,它就不起作用。我正在使用引导顺序99,但它无法正确启动,因为我需要等待这些功能运行。
init.d实现这一目标的正确语法是什么(一个内核模块和)?我想一定有一些关键字 like# Required-Start: $remote_fs $syslog $network但我找不到特定接口和内核模块的正确关键字。
背景:初始化脚本与SLURM,的openmpi和InfiniBand的相互作用。我已经编译了支持Mellanox infiniband驱动程序的SLURM,并且openMPI链接到这个版本的 SLURM。结果就是openMPI直接使用了mellanox infiniband驱动,比ipob(ip over inifiniband)强大很多。为此,它需要使用系统的注册内存,该内存必须设置为无限。
所以:
我logger在init.d脚本中添加了一些输出。我注意到实际上这些模块已经启动并正在运行。所以我不完全理解这个问题。很奇怪,可能与一些需要的环境变量有关,这些变量仅在完整的用户空间中设置,而不是在初始化时设置。
问题涉及/etc/security/limits.conf 中设置的 memlock 限制。为了使它工作,我必须设置
* - memlock unlimited
root - memlock unlimited
Run Code Online (Sandbox Code Playgroud)
这样,当我使用ssh连接启动 slurm守护进程时,一切正常,并且当它是启动守护进程的 init 进程时,它就像不考虑 …
由于 Debian jessie(默认使用 systemd)和sdwdate(使用慢时钟调整器( gh ))的组合使用,我的系统时钟经常更改。
结果/var/log/syslog被无休止地发送垃圾邮件。
[...]
Aug 22 13:06:15 host systemd[1]: Time has been changed
Aug 22 13:06:16 host systemd[1]: Time has been changed
Aug 22 13:06:16 host systemd[852]: Time has been changed
Aug 22 13:06:17 host systemd[852]: Time has been changed
Aug 22 13:06:17 host systemd[1]: Time has been changed
Aug 22 13:06:18 host systemd[1]: Time has been changed
[...]
Run Code Online (Sandbox Code Playgroud)
运行会sudo service rsyslog stop阻止垃圾邮件,但这不是真正的解决方案。
这在使用 sysvinit 的 Debian wheezy …
我试图在我的 Debian 机器上运行 Google AppEngine,我创建了一个文件init.d/gae:
. /lib/lsb/init-functions
#
# Initialize variables
#
name=gae
user=$name
pid=/var/run/$name.pid
prog="python /opt/google_appengine/dev_appserver.py --host=0.0.0.0 --admin_host=0.0.0.0 --php_executable_path=/usr/bin/php-cgi /var/www"
case "${1}" in
start)
echo "Starting...Google App Engine"
start-stop-daemon --start --make-pidfile --background --oknodo --user "$user" --name "$name" --pidfile "$pid" --startas "$prog"
;;
stop)
echo "Stopping...Google App Engine"
;;
restart)
${0} stop
sleep 1
${0} start
;;
*)
echo "Usage: ${0} {start|stop|restart}"
exit 1
;;
esac
exit 0
# End scriptname
Run Code Online (Sandbox Code Playgroud)
我正在通过手动调用来测试脚本,并且脚本运行但不是作为守护程序运行,或者至少它不会与终端分离。我期待/寻找与 Apache 类似的功能。
我缺少什么开关?
编辑
我应该注意到,尽管开关指示应该创建它,但没有写入或创建 PID …
相对于想要除掉的人systemd,我想要彻底且安全地去除 sysvinit。
我Debian从Debian 7.0 (Wheezy)开始使用。目前我正在使用Debian 9.0 (Stretch)。在其中一次系统升级期间,从 移动sysvinit到systemd。
systemd对我来说很好用,但我注意到系统没有完全删除sysvinit。
sysvinit?sysvinit通过以下方式移除遗骸是否安全:
aptitude purge initscripts sysvinit sysvinit-utils
Run Code Online (Sandbox Code Playgroud)
或者:
apt-get remove --purge initscripts sysvinit sysvinit-utils
Run Code Online (Sandbox Code Playgroud)顺便说一句:AFAIK有systemd-sysvcompat包(未安装)可能以某种方式使用sysvinit. 我想避免由于移除sysvinit对Debian仍然是必需的残留物而可能导致的问题。
sysvinit ×10
debian ×6
systemd ×3
init-script ×2
apache-httpd ×1
command ×1
disk-cleanup ×1
executable ×1
init ×1
linux ×1
migration ×1
ps ×1
rsyslog ×1
startup ×1
su ×1
sudo ×1
syslog ×1
ubuntu ×1
upgrade ×1
upstart ×1