你如何configuration一个更新版本的主pipe在Ubuntu启动系统启动? 一些发行版在它们的版本库中只是滞后。 当我使用简单的安装(在主pipe网站上默认推荐)我只能得到二进制安装,但它不是守护进程。 http://supervisord.org/installing.html 有一个以前的老post提到创build一个新贵或一个systemd脚本,有多个人尝试不同的事情,让它的工作,但没有明确的答案。 如何自动启动Linux上的supervisord(Ubuntu)
在我的Fedora 23系统上,一个数据库由systemd启动。 依赖于该数据库的另一个服务(configuration单元variables)是通过init.d脚本启动的。 我不清楚什么才是正确的方式,使这些服务开始在正确的顺序(数据库之前configuration单元-megastore)。
我试图迫使Kibana在端口80上侦听,因此它需要以root身份运行。 我怎样才能做到这一点? 初始化脚本如下: #!/bin/sh # Init script for kibana # Maintained by # Generated by pleaserun. # Implemented based on LSB Core 3.1: # * Sections: 20.2, 20.3 # ### BEGIN INIT INFO # Provides: kibana # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 […]
我正在做一些初始化脚本来启动一些系统服务,需要其他服务才能启动才能成功启动。 例如,一项服务需要xenstored在启动之前运行。 如果我理解正确,LSB初始化脚本具有以下指令: # Required-Start: # Should-Start: # Required-Stop: # Should-Stop: 我的问题是,仅仅在Required-Start:之后放置xenstored就足够了吗? Required和Should什么区别? 另外,Debian 5是否遵守这些指令?
我正在设置mongod以在/etc/init.d脚本中运行。 这可能是一个挑逗,但有没有办法避免这种情况? # service mongod start Starting mongod: forked process: 19820 all output going to /log/location/mongod.log [SUCCESS] 相反,我只想看到: # service mongod start Staring mongod: [SUCCESS]
在一个centos 6派生版(Amazon Linux)上,我有一个init.d脚本ecrinit,用于在系统启动时启用/禁用某些服务(基于磁盘上的属性文件的内容): if [[ "$nodeType" == "foo" ]]; then #turn off mysql, turn on proftpd service mysqld stop chkconfig mysqld off # prevent lower-pri mysqld service from chkconfig proftpd reset # re-enables at run levels 2-4 fi 由于ecrinit的开始pri是60,proftpd是88,所以我期望后者是通过启动过程启动的,因为上面调用chkconfig reset确保/etc/rc3.d(确认)中存在适当的文件。 但是这似乎并不是这样,因为如果我在执行“init 6”之前发出“chkconfig proftpd off”,那么“start”永远不会在proftpd上被调用(我向后面的脚本的主体添加了一个日志语句来确认)。 换句话说,在执行ecrinit之前,启动过程似乎检查/etc/rc3.d的内容(并且在启动过程中没有检测到相同目录中的新文件)… 这是预期的行为? 如果是这样,我怎样才能控制在一个给定的启动应启用哪些服务(并避免手动启动它们以保持优先顺序)? 启动脚本头 [root@lb1 ~]# head /etc/init.d/proftpd #!/bin/bash # $Id: […]
我试图在Ubuntu 12.04上安装RhodeCode服务器。 我把所有东西都安装到了virtualenv中,当我从控制台运行它时,所有东西都能正常工作( paster serve production.ini )。 我写了一个init.d脚本来启动它,但它似乎并没有工作。 当我执行sudo /etc/init.d/rhodecode start手动sudo /etc/init.d/rhodecode start ,我看到“启动RhodeCode”回显到控制台,一切正常。 但是,如果我重新启动,或者如果我使用sudo service rhodecode start ,我确实看到消息呼应到控制台,但Python进程不运行。 我已经使用update-rc.d rhodecode defaults安装了脚本。 从研究如何实现这一点,我发现的源代码提示我不需要运行source /usr/rhode/venv如果我直接从virtualenv目录运行python。 首先成功地从控制台运行而不激活任何virtualenv似乎支持这个理论。 virtualenv页面似乎证实了这一点 : 如果直接从virtualenv的bin /目录(例如path / to / env / bin / pip或/ path / to / env / bin / python script.py)运行脚本或python解释器,则不需要激活。 有关我如何设置服务器的更多细节,这个Gist显示了我迄今为止所做的工作笔记: 在Ubuntu Server 12.04上安装RhodeCode 1.3.6 /etc/init.d/rhodecode #!/bin/sh ### […]
我需要一些关于Linux上的init.d系统的教育(在我的例子中是Ubuntu 12.04,64位),我发现了数百个网站(不是我没有看全部,但是我看过其中的一些)告诉我如何编写一个init.d脚本以及如何在/etc/rc2.d中创build符号链接。 我仍然对理解能力和制作Google查询的能力稍有欠缺,这些问题可以帮助我获得所需的答案。 所以, 我知道我的init.d脚本启动。 我有它回声日志消息到一个文件,因此我知道它正在运行,例如在任何用户的.profile运行之前。 问题是,它正在执行的环境的性质是什么。 发送到STDOUT的输出会发生什么? 它写在一个虚拟terminal的地方? 它会影响任何东西吗? 我实际上想从init.d脚本启动的“程序”是一个shell脚本my_shell_script ,它包裹着我真正的程序my_program 。 该脚本设置了一堆环境variables,包括PATH和LD_LIBRARY_PATH ,然后启动my_program 。 我应该修改启动my_program将其输出redirect到/ dev / null的行吗? 同上STDERR? 如果发射线有一个NULL <1(或它是NULL <&1?),所以STDIN被断开? 在我的init.d脚本中,当我想启动shell脚本时,调用它的正确方法是什么? my_shell_script 要么 . my_shell_script 要么 sh my_shell_script 我应该用sh还是bash。 我想使用一个必要的脚本function? 即bash是否有非sh bash? 当init.d脚本尝试启动my_shell_script时 ,是否需要在STDIN,STDERR和STDOUT上执行相同的redirect? 现在,my_program最初是作为带有一个graphics窗口的terminal启动程序而开发的。 主程序启动graphics窗口,然后启动两个单独程序运行的xterm(我不知道为什么,我inheritance了它)。所有这三个程序永远运行,但不是守护进程:只是无限循环。 主程序监视以确保其他两个正在运行,并将重新启动,如果他们确实停止。 如果这个程序,我会成为守护进程? 还是非终止的应用程序好吗? 在my_shell_script rmd的启动行中加上 &so的脚本可以继续启动并返回到init.d脚本? my_program ,检测到graphics窗口可能不启动(所以我可以telnet / ssh到运行的服务器上,并(重新启动它))。 如果没有运行GUI窗口,它会在同一个terminal(telnet)窗口中启动另外两个子程序,所有的graphics输出将作为非graphics文本输出发送到该terminal和日志文件。 当我将ssh / telnet到我的开发服务器时, .profile会运行, […]
我已经在Ubuntu上安装了mysql ,并启动它的文档说: 调用mysql.server 。 此脚本主要用于在使用System V风格运行目录(即/etc/init.d和运行级别特定目录)的系统上的系统启动和closures,通常以名称mysql安装。 mysql.server脚本通过调用mysqld_safe启动服务器。 但是, /etc/init /etc/init.d的mysql文件只是链接到/lib/init/upstart-job ,而/etc/init的mysql.conf文件是这样的: # MySQL Service description "MySQL Server" author "Mario Limonciello <[email protected]>" start on runlevel [2345] stop on starting rc RUNLEVEL=[016] respawn respawn limit 2 5 env HOME=/etc/mysql umask 007 # The default of 5 seconds is too low for mysql which needs to flush buffers […]
我正在运行CentOS,并希望在系统启动时执行一个命令。 阅读ServerFault上的其他post,推荐使用的文件是rc.local 。 但是, rc.local存在于/etc/和/etc/rc.d/ 。 我应该使用哪个文件,两者有什么区别? 谢谢。