Articles of init.d

insserv:服务foo和酒吧之间有一个循环,如果开始…打破天资

有谁知道如何解决这些从Cyber​​power powerpanel for linux包发生的初始化错误? 参考: http : //www.cyberpowersystems.com/products/management-software/ppl.html – 我尝试使用螺母代替,但它有问题,即Debian错误354429,有效地禁用系统日志,因此螺母不是一个选项。 参考: http : //bugs.debian.org/cgi-bin/bugreport.cgi? bug= 354429 输出: root@host:~# aptitude install foo The following NEW packages will be installed: foo python-central{a} The following packages are RECOMMENDED but will NOT be installed: whois 0 packages upgraded, 2 newly installed, 0 to remove and 1 not upgraded. Need […]

作为另一个用户启动一个脚本

我在/etc/init.d/中创build了一个脚本,它必须从其主目录中运行其他(非超级用户)用户的其他脚本,就好像他们启动了它们一样。 我使用以下sudo -b -u <username> <script_of_a_particular_user>启动这些脚本: sudo -b -u <username> <script_of_a_particular_user> 它工作。 但是,对于每个继续运行的用户脚本(例如一些看门狗),我都会看到一个相应的父级sudo进程,它仍然以root身份运行。 这在活动进程列表中创build一个混乱。 所以我的问题是: 如何从另一个用户启动(fork)另一个脚本作为另一个用户,并将其作为孤立的(独立)进程? 更详细的解释: 我基本上是试图提供给机器上的其他用户一个意思是在系统启动或系统closures时运行的东西,通过运行在其主目录中find的名为.startUp和.shutDown的各个子目录中find的可执行文件。 由于我没有find任何其他的方法来做到这一点,所以我写了我的bash脚本,完全是这样做的,我已经在/etc/init.d/中configuration它作为服务脚本(通过下面的框架示例)启动参数启动了.startUp目录中的所有内容,当它以stop参数运行时,它启动所有用户的.shutDown目录中的所有内容。 另外我也有兴趣,如果我可以使用一些现有的解决scheme来解决这个问题。 UPDATE 我查了一下,我发现这个问题: https : //unix.stackexchange.com/questions/22478/detach-a-daemon-using-sudo 接受的答案在那里,使用: sudo -u user sh -c "daemon & disown %1" ,适用于我。 但是,我也尝试不留%1 ,这是一样的。 所以这就是我所期待的对我的作用: sudo -u <username> bash -c "<script_of_a_particular_user> &" 我现在的另外一个问题是,为什么它没有被忽视呢? 无论如何,我是否还应该离开这个离别的电话呢? 更新2 显然这也可以工作: su <username> -c "<script_of_a_particular_user> &" […]

从init脚本运行任意程序作为守护进程

我需要在Red Hat上安装一个程序作为服务。 它不会后台自己,pipe理其PID文件,或pipe理自己的日志。 它只是运行并打印到STDOUT和STDERR。 使用标准的初始化脚本作为指南,我开发了以下内容: #!/bin/bash # # /etc/rc.d/init.d/someprog # # Starts the someprog daemon # # chkconfig: 345 80 20 # description: the someprog daemon # processname: someprog # config: /etc/someprog.conf # Source function library. . /etc/rc.d/init.d/functions prog="someprog" exec="/usr/local/bin/$prog" [ -e "/etc/sysconfig/$prog" ] && . "/etc/sysconfig/$prog" lockfile="/var/lock/subsys/$prog" RETVAL=0 check() { [ `id -u` = […]

在/etc/init.d脚本中调用守护进程是阻塞的,而不是在后台运行

我有一个Perl脚本,我想要守护进程。 基本上这个perl脚本会每隔30秒读取一个目录,读取它find的文件,然后处理数据。 为了简单起见,可以考虑下面的Perl脚本(称为synpipe_server,这个脚本在/usr/sbin/有一个符号链接): #!/usr/bin/perl use strict; use warnings; my $continue = 1; $SIG{'TERM'} = sub { $continue = 0; print "Caught TERM signal\n"; }; $SIG{'INT'} = sub { $continue = 0; print "Caught INT signal\n"; }; my $i = 0; while ($continue) { #do stuff print "Hello, I am running " . ++$i . "\n"; […]

标准或最好的方式来保持活动进程由init.d启动

我正在寻找一个标准的方法或最佳实践来保持一个由init.d shell脚本启动的守护进程。 或者甚至更好,有没有办法让它直接从/etc/init.d ? 具体来说,我有一个名为dtnd的守护进程,并且有无限循环,用于查找意外的结束进程,如果有的话,守护进程会再次唤醒它们。 另外,我使用start-stop-daemon工具来让给定的系统用户运行进程。 我想从启动运行这个dtnd守护进程。 为了实现这个行为,我创build了一个init.d脚本,它使用start,stop和status命令来“包装”dtnd文件。 我有两个问题,我想解决: 有没有办法实现从init.d shell脚本保持活着的一些进程 。 是一种标准/最好的方式吗? build议使进程保持无限循环状态? 我想最好使用一些像respawn这样的命令来实现。 这是正确的? 我知道respawn命令的存在。 我想这就是我所需要的,但是我不了解/etc/init.d/和/etc/init之间的工作stream程。 任何人都可以帮我吗? 注意,我没有inittab,也没有upstart(我只允许使用/etc/init , /etc/init /etc/init.d , cron和系统工具作为start-stop-daemon 。我的意思是,只有默认的工具) 非常感谢你的时间!

什么是status_of_proc,我怎样称呼它?

在Debian 7(Wheezy)的nginx初始化脚本中,我阅读了以下exerpt: status) status_of_proc -p /var/run/$NAME.pid "$DAEMON" nginx && exit 0 || exit $? ;; 这段代码运行得很好, sudo service nginx status输出[ ok ] nginx is running 。 然而, status_of_proc没有在bash中定义,在短划线中也没有定义: $ type status_of_proc status_of_proc: not found 虽然如果我把相同的支票插入nginx脚本,我得到了以下结果: status_of_proc is a shell function 而对init文件本身运行bash提供了进一步的解释: status_of_proc is a function status_of_proc () { local pidfile daemon name status OPTIND; pidfile=; […]

重新启动后,PHP-FPM不会自动启动

我运行PHP-FPM和Nginx,偶尔出于任何原因,我必须重新启动服务器。 一旦服务器再次运行,nginx服务会自动启动,但是PHP-FPM不会。 当我在sudo /etc/init.d/php-fpm restart后立即运行sudo /etc/init.d/php-fpm restart命令时,可以看到这个结果: $ sudo /etc/init.d/php-fpm restart Stopping php-fpm: [FAILED] Starting php-fpm: [ OK ] 这是预期的行为? 什么是使PHP-FPM自动启动的最佳方式? 在任何地方有configuration选项,还是必须将命令添加到其中一个Linux启动脚本? 谢谢。

用Python编写的init.d脚本

StackOverflow提出了一个关于在Python中编写init.d脚本的问题。 一个评论指出,这些脚本应该在shell中编程,而不是Python。 在Python中编写init.d脚本: 坏。 坏。 坏。 永远不要这样做。 不是推荐的做法。 好,注意事项 传统的教条。 非常好。 了解任何噩梦的场景,或者这个规则是写在一些系统pipe理员的血液里,这将是非常好的。

如何在终止后自动重启进程?

我有一个golang程序,我想在Debian Squeeze框中终止后重启。 在Apache 2的mod_proxy安装程序后面提供HTTP服务。 我不希望这个过程失败,但我想有一些保险。 在Ubuntu上,我会用暴发户来保持这个进程的活跃。 Debian不喜欢我所了解的Upstart,因为它是init的替代品。 是否有一个替代scheme重新启动一个或多个进程后终止在Squeeze上工作,并与初始化打好?

如何从/etc/init.d/中删除/备份脚本?

我一直在使用Linux一段时间,但以一个相当简单的方式。 我明白init.d中的脚本是在os启动时执行的,但是它究竟是如何工作的呢? 如果我想保留一个脚本但不希望它自动启动呢? 说我有一个/etc/init.d/varnish并且想暂时禁用它。 如何确保在操作系统重新引导时不会启动? 我不想删除脚本。 如果我想再次添加呢?