我的 Ubuntu 上有几台服务器需要进行防重启守护进程。我该如何使用通用的 init first 进程来做到这一点?我应该换成新贵还是其他替代品?
我拥有一个运行 Gentoo Linux 的 VDS,我很好奇如何在 VDS 启动时执行特定的 bash 脚本。
我只想在启动时启动 apache2 并运行两个瘦实例。
我是 systemd 的新手,我的同事给我的脚本有问题。该脚本在 Debian 7 中作为后台进程运行,但在 Debian 8 中不起作用。我决定将其重写为 systemd。
我有这个chunk8.service(位于/etc/systemd/system):
[Unit]
Description=Chunk-search Daemon
Requires=mysql.service apache2.service
[Service]
PIDFile=/var/run/chunkrm8.pid
ExecStart=/usr/bin/php /var/www/chunkrm8/task_pool.php > /dev/null 2>/dev/null
Type=forking
KillMode=process
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
当我重新启动系统(或运行systemctl start chunk8.service)时,我得到:
? chunk8.service - Chunk-search Daemon
Loaded: loaded (/etc/systemd/system/chunk8.service; enabled)
Active: failed (Result: timeout) since Tue 2016-04-19 16:21:20 MSK; 1min 1s ago
Run Code Online (Sandbox Code Playgroud)
我做错了什么?提前致谢。
我只需要构建两个在不同端口上运行的守护进程实例。假设它们都为某些应用程序提供关键任务。
当其中一个无法提供服务时,如何执行一些自动任务(例如 shell 脚本)来检查两个守护进程?
什么样的脚本可以始终检查守护程序的生命周期,并且如果其中一个守护程序意外停止,也许可以执行其他一些作业?
我通过 ssh 进入服务器而不是开始一项工作(例如 rsync),然后我只想能够从服务器注销并让工作顺利进行。但是,如果我只是这样做,rsync ... &我认为它仍然以某种方式连接到 tty,并且当注销时 tty 消失时,工作就会终止。是否有任何(简单)方法可以将进程与 tty 断开连接,以便能够在不终止进程的情况下注销?
我在 Ubuntu 8.10
该脚本在从命令行调用时运行sudo /etc/init.d/xbindkeys start。这是它的外观:
#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
case "$1" in
start)
xbindkeys
;;
stop)
ps aux | grep xbindkeys | head -n1 | awk '{print $2}' | xargs kill
;;
restart)
$0 stop
$0 start
;;
esac
Run Code Online (Sandbox Code Playgroud)
我之前运行sudo update-rc.d xbindkeys defaults过创建符号链接。为了确保它被正确链接,我尝试了chkconfig | grep xbindkeys,它返回:
xbindkeys 2345
Run Code Online (Sandbox Code Playgroud)
但是,重新启动后,我没有看到ps aux | grep xbindkeys.
想法?
在哪里可以找到 Linux 实用程序和守护程序的源代码。基本上我想知道Linux内核以外的源代码库。
我的 syslog 运行正常,但出于好奇如何检查 syslog 守护进程正在运行。无论如何我可以检查状态,如 apache
root@server1:/etc# /etc/init.d/apache2 status
Apache2 is running (pid 12894).
Run Code Online (Sandbox Code Playgroud)
我正在运行 Debian wheezy。提前致谢。
我需要在命令行停止 crond。(我正在编写一个脚本,需要停止它,做一些工作,然后重新启动它。我宁愿不删除和替换 crontab 文件,因为它更容易出错。)
但是,当我运行service crond stopor 时sudo /etc/init.d/crond stop,它会停止,但不到一分钟后又会再次启动。
[root@prod-sphinx1 ~]# service crond stop;date
Stopping crond: [ OK ]
Wed Oct 15 05:48:50 UTC 2014
[root@prod-sphinx1 ~]# ps uefxxx | grep crond
root 11891 0.0 0.0 61192 788 pts/0 S+ 05:49 0:00 \_ grep crond HOSTNAME=sphinx01.us-east-1.zoomingo.com TERM=xterm-256color SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=50.46.219.220 51260 22 SSH_TTY=/dev/pts/0 USER=root LS_COLORS= EC2_HOME=/home/ec2 MAIL=/var/spool/mail/root PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/ec2/bin:/home/ec2/bin:/root/bin INPUTRC=/etc/inputrc PWD=/root JAVA_HOME=/usr/java/default LANG=en_US.UTF-8 PS1=[\u@prod-sphinx1 \W]\$ SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass SHLVL=1 HOME=/root LOGNAME=root CVS_RSH=ssh SSH_CONNECTION=50.46.219.220 51260 10.146.200.111 22 PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig LESSOPEN=|/usr/bin/lesspipe.sh …Run Code Online (Sandbox Code Playgroud) 我在 CentOS 上安装了 nginx,现在我需要禁用它(包括重新启动时),但保留它的安装以供进一步使用。
我应该只删除/etc/init.d/nginx文件吗?或者有更优雅的方式来做到这一点吗?