Questions tagged «init.d»

init.d目录包含用于Linux系统上各种服务的许多启动/停止脚本。


6
使旧的init脚本在systemd中工作的最简单方法是什么?
我不想通过创建新的systemd脚本来做正确的事,我只是希望我的旧init脚本能够再次正常工作,因为我已经将系统升级到使用systemd的操作系统。 我已经简要研究了如何转换初始化脚本以及如何编写systemd脚本,但是我敢肯定,正确学习它并正确执行将花费我几个小时。 当前的情况是: systemctl start solr Failed to start solr.service: Unit solr.service failed to load: No such file or directory. 和: sudo service solr start Failed to start solr.service: Unit solr.service failed to load: No such file or directory. 现在,我只想恢复工作。使此功能再次起作用的阻力最小的途径是什么? 更新 我不想弄清楚这一切-我确实不是-但是我必须并且我已经发掘出我的第一个线索: sudo systemctl enable solr Synchronizing state for solr.service …
48 init.d  systemd 

4
如何从Linux init.d / rc.d脚本中查找错误消息?
在Linux中,我编写了一些在引导过程中执行的脚本,并尝试了各种安装方式。对于较大的脚本,我将放入/etc/init.d并链接适当的/etc/rc.d/rc?.d运行级别。对于较小的脚本,我将附加到/etc/rc.d/rc.local。这个过程似乎运行顺利。 现在,我已经调整了我的一个脚本,但是它失败了。我很难诊断它,因为我似乎无法捕获错误输出。我检查/var/log/messages了其余部分,/var/log但找不到任何可用的东西。 有人知道吗: 这些错误消息是否会自动捕获到某处? 如果没有,如何从init.d脚本中捕获stdout / stderr? 提前致谢。
28 linux  logging  init.d  rc.d 

2
如何从/etc/init.d/中删除/备份脚本?
我使用Linux已有一段时间了,但是以一种非常简单的方式进行。 我了解init.dos启动时会执行其中的脚本,但是它到底是如何工作的? 如果我想保留一个脚本但又不想自动启动该怎么办? 说我有一个/etc/init.d/varnish,想暂时禁用它。如果操作系统重启,如何确保它不会启动?我不想删除脚本。如果我要再次添加该怎么办?

4
以非root用户身份运行nginx
我遵循此过程在Ubuntu 10.04 Lucid Server http://library.linode.com/web-servers/nginx/installation/ubuntu-10.04-lucid上安装nginx 在创建用于启动nginx的初始化脚本然后调用/etc/init.d/nginx start之后,我迷路了。当我这样做时,出现以下错误: Starting nginx_main: Starting /opt/nginx/sbin/nginx... nginx: [alert] could not open error log file: open() "/opt/nginx/logs/error.log" failed (13: Permission denied) 2012/03/16 18:17:27 [emerg] 859#0: open() "/opt/nginx/logs/access.log" failed (13: Permission denied) 我可以运行它的唯一方法是,如果我使用sudo它root,并且它以的方式运行该进程,那是我不想要的。 我已经建立chown了整个目录(chown -R nginx:nginx /opt/nginx),也已经建立chmod -R 755了目录。 user按照CS3的建议添加指令也给了我这个错误,但是还有一行。 Starting nginx_main: Starting /opt/nginx/sbin/nginx... nginx: [alert] could …

1
服务器重启后如何自动启动mysql(CentOS +其他发行版)?
关闭服务器后,如何配置CentOS Linux服务器自动启动mysql? 我知道init.d的路径... /etc/rc.d/init.d ...我可以在该文件夹中看到mysqld。我相信将项目(即通过符号链接)放置在此文件夹中意味着它们应在服务器重新启动时启动。 但这对我来说没有发生。 背景 我们的中央IT部门在周末重新启动了我们的虚拟化CentOS服务器。重新启动后服务器可用,但MySQL数据库也未重新启动。 有什么想法吗?
17 linux  mysql  init.d 

2
重新启动后,PHP-FPM无法自动启动
我正在运行PHP-FPM和Nginx,出于某种原因,有时我必须重新启动服务器。服务器再次运行后,nginx服务将自动启动,但是PHP-FPM不会启动。sudo /etc/init.d/php-fpm restart重新启动后立即运行命令并获得结果,可以看到此信息: $ sudo /etc/init.d/php-fpm restart Stopping php-fpm: [FAILED] Starting php-fpm: [ OK ] 这是预期的行为吗?使PHP-FPM自动启动的最佳方法是什么?哪里有配置选项,还是必须将命令添加到Linux启动脚本之一? 谢谢。

5
由init.d启动的保持活动进程的标准或最佳方法
我正在寻找一种标准方法或最佳实践,以使由init.dShell脚本启动的守护程序保持活动状态。 甚至更好的是,有没有办法让它直接存活/etc/init.d? 具体来说,我有一个名为dtnd的守护进程,它带有无限循环,该循环查找意外终止的进程,如果有的话,该守护进程将再次唤醒它们。另外,我使用start-stop-daemon工具,以便从给定的系统用户运行进程。 我想从启动运行此dtnd守护程序。为了实现此行为,我创建了一个init.d脚本,该脚本使用启动,停止和状态命令来“包装” dtnd文件。 我有两个问题要解决: 有没有一种方法可以使init.d shell脚本中的某些进程保持活动状态。是否有标准/最佳做法? 建议通过无限循环使进程保持活动状态吗?我想最好使用一些命令respawn来达到目的。这是正确的? 我知道该respawn命令的存在。我认为这就是我需要的,但我不明白之间的工作流程/etc/init.d/和/etc/init。谁能帮我? 请注意,我没有inittab文件既没有暴发户(我只被允许使用/etc/init,/etc/init.d,cron和系统工具start-stop-daemon。我的意思是,只有默认工具) 非常感谢您的参与!

4
以其他用户身份启动脚本
我已经在/etc/init.d/中创建了一个脚本,该脚本必须从其主目录中的其他(非root用户)用户运行其他几个脚本,就像他们启动了它们一样。 我使用以下命令启动这些脚本: sudo -b -u <username> <script_of_a_particular_user> 而且有效。但是对于每个继续运行的用户脚本(例如某些看门狗),我看到一个相应的父sudo进程,该进程仍处于活动状态并以root身份运行。这会在活动进程列表中造成混乱。 所以我的问题是:如何以另一个用户身份从现有bash脚本启动(分支)另一个脚本并将其保留为孤立的(独立的)进程? 更详细的解释: 我基本上是想通过运行在其主目录中名为.startUp和.shutDown的各个子目录中的可执行文件,向计算机上的其他用户提供一种在系统启动或系统关闭时运行内容的方法。由于我没有找到其他方法来执行此操作,因此我编写了可以完全执行此操作的bash脚本,并已在/etc/init.d/中将其配置为服务脚本(通过遵循框架示例),因此在运行时使用start参数,它将从.startUp目录启动所有内容;当使用stop参数运行时,它将从所有用户的.shutDown目录启动所有内容。 另外,如果我可以使用一些现有的解决方案来解决此问题,我也很感兴趣。 更新 我环顾了一下,发现了这个问题: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> &" 这个调用和sudo调用之间有什么区别吗?我知道这可能是一个完全不同的问题。但是由于我自己在这里找到答案,也许出于这个主题的缘故,有人可以在这里进行澄清。 更新3在我引导计算机之后 ,这两种使用su或sudo的方法现在都会产生一个新的startpar进程(以root身份运行的单个进程)。在进程列表中显示为: startpar -f -- <name_of_my_init.d_script> 为什么会产生此过程?显然我做错了,因为没有其他init.d脚本正在运行此进程。 更新4 解决了startpar的问题。我对此提出了另一个问题:从rc.local或init.d启动进程时, …
12 linux  debian  bash  sudo  init.d 

5
进程终止后如何自动重启?
我有一个golang程序,它在Debian Squeeze盒上终止后要重新启动。事情是在Apache 2 mod_proxy设置背后提供HTTP服务。我不认为该过程会失败,但是我想对此有所保证。 在Ubuntu上,我会使用upstart来保持该进程的生命。Debian不喜欢Upstart,因为它是一个init替代品。 是否有一种替代方法可以在终止后重新启动一个或多个进程,该进程可在Squeeze上运行并与init配合使用?

1
什么是status_of_proc,我怎么称呼它?
在Debian 7(Wheezy)中Nginx的初始化脚本中,我阅读了以下摘录: 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; …

3
从初始化脚本中将任意程序作为守护程序运行
我需要在Red Hat中将程序安装为服务。它本身不后台运行,不管理其PID文件或管理其自己的日志。它只是运行并打印到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() { [ …
10 redhat  service  init.d 

4
用Python编写的init.d脚本
StackOverflow上出现一个问题,询问如何init.d用Python 编写脚本。一条评论指出,这些脚本应该在Shell中编程,而不是Python。正在init.d用Python 编写脚本: 坏。坏。坏。永远不要这样做。 不建议这样做。 好的,请注意。 旧式教条。 完全可以。 知道任何噩梦场景,或者如果此规则写在某些系统管理员的血液中,那将是很好的。
10 linux  python  init.d 

2
/etc/init.d脚本中对守护程序的调用被阻止,未在后台运行
我有一个要守护的Perl脚本。基本上,此perl脚本将每30秒读取一个目录,读取其找到的文件,然后处理数据。为了简单起见,请考虑以下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 " . …
9 linux  unix  daemon  init.d 

2
启动或停止服务后,能否使systemd显示服务状态?
我试图让systemd执行init.d脚本所要执行的工作,在手动给定启动或停止命令后,自动显示服务的状态。这可能吗? 不幸的是,systemd会突然弹出,因为它在后台运行,然后您必须执行第二个命令以显示状态,开始或停止可能有效或无效,除非您询问并让您幸福无知,否则systemd不会告诉您。 即。我试图得到 service nginx status 在我执行 service nginx start 要么 service nginx restart (或在大脑受损的systemd中 systemctl start nginx.service)
8 init.d  systemd 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.