Articles of 守护进程

安全地为Linux守护进程提供密码

我有一个Linux守护进程访问一些服务(DB等)。 这需要一些密码。 以安全的方式将守护进程的密码最好的方法是什么? 我目前将密码存储在根只读configuration文件中,但依赖权限似乎是不安全的。 我正在考虑在守护进程启动时提示用户input密码,并将密码存储在内存中。 当然这对于一个拥有root用户权限的攻击者来说只是一个小小的障碍,但是至less可以保证备份,快照等等,并且可能会花费一些时间。 其他选项? build议?

Opera作为一个守护进程联合起来

是否有可能运行一个歌剧联合服务器没有浏览器? 比方说,我想使用永远在线的FreeBSD服务器,它不运行X.

初始化脚本和绿色

我试图在EC2实例上安装nginx的fast-cgi。 我遵循这里解释的步骤,但是这是为了Debian,并没有开箱即用的基于红帽子的系统。 我修改了一下脚本,看起来像 – #!/bin/bash ### BEGIN INIT INFO # Provides: php-fcgi # Required-Start: $nginx # Required-Stop: $nginx # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts php over fcgi # Description: starts php over fcgi ### END INIT INFO . /etc/rc.d/init.d/functions (( EUID )) && echo .You need to […]

runit – 无法打开supervise / ok:文件不存在

我想弄清楚为什么runit不会启动或给我的托pipe的应用程序的状态。 在Ubuntu 12.04上运行。 我创build了/ service,/ etc / sv / myapp(包含一个运行脚本,一个configuration文件,一个日志文件夹和一个运行脚本)。 我创build了一个从/ service /到/ etc / sv / myapp的符号链接 当我跑步 sudo sv s /service/* 我收到以下错误信息: warning: /service/myapp: unable to open supervice/ok: file does not exist 我的一些谷歌search透露,假设重新启动svscan服务可能会解决这个问题,但杀死它并运行svscanboot没有什么区别。 有什么build议么? 我在这里错过了一步吗?

在CentOS上共享.iso文件,通过互联网远程安装

我有一个远程计算机支持业务,我们有必要不时远程挂载客户端机器上的.iso文件,以便用于获取驱动程序更新等。 我们拥有Netcraft十大名单上的一个巨大的服务器,我想在这个东西上安装一些ISO,并使用WebDAV之类的技术将它们安装在远程PC上。 例如,我们无法将DriverPack Solution 4GB DVD下载到机器,然后扫描/更新驱动程序。 我们宁愿像Google Drive一样装载图像….任何想法?

在硬重启之后,解决过时的pidfile问题会杀死我的守护进程

我在(VMWare)VM上使用Red Hat Linux(RHEL5)。 我已经写了一个守护进程,它应该一直保持运行,并在启动时自动运行。 昨晚,VM主机有一个不可恢复的硬件问题,虚拟机突然中止。 当它回来时,我的守护进程没有启动,因为pidfile仍然存在。 显然这被称为陈旧pidfile综合症,但我不知道什么是减轻它最好的长期方法。 我在考虑/etc/rc.d*中的启动脚本应该在启动守护进程之前删除pidfile,但是/etc/init.d的服务pipe理脚本应该保持不变,所以像service mydaemon start这样的东西不会打开pid文件。 /etc/rc.d/rc6.d只是在/etc/init.d/的脚本的符号链接,所以我应该如何改变它只在启动时的行为? 我可以在rc.d dirs中创build一个更高优先级的脚本,但是看起来好像很难。 有人还build议添加逻辑,如“如果正常运行时间less于1分钟,删除pidfile”,但也似乎hacky。 任何想法或解决scheme或最佳做法?

如何用auth支持启动Mongo守护进程

我想用Mongo初始化脚本启动支持auth的MongoDB守护进程: sudo /etc/init.d/mongod start 我也已经将数据库用户添加到数据库进行身份validation。 我正在处理两个文件: /etc/init.d/mongod (用于init)和/etc/mongod.conf (用于configuration)。 #mongod.conf: dbpath=/var/lib/mongodb logappend=true port = 27017 auth = true 非守护进程方法使用–auth标志正确启动进程: mongod –auth 该分支工作,但是这不使用init脚本: mongod –fork –auth –logpath /var/log/mongod.log 阅读所有文档和相关的post,似乎没有任何工作的解决scheme来获得auth支持 service mongod start 链接: 用init脚本启动进程的奇怪行为 http://docs.mongodb.org/manual/administration/configuration/ 通过暴发户设置mongodb – 如何通过选项? 更新:我重新安装了Debian / Mongo,并且能够在conf文件中使用service mongod start和auth = true 。 我可能在最初的安装/configuration期间破坏了某些东西。

我怎样才能删除权限,仍然清理我的PID文件在/ var / run?

我有一个名为foo的守护进程。 我的init脚本/etc/init.d/foo启动foo守护进程,并将其pidfile存储在/var/run/foo.pid ,这似乎是标准的地方。 由于/etc/init.d/foo必须以root身份运行,因此在/var/run创build和删除pidfiles并不困难。 foo守护程序实际上是程序/usr/sbin/foo ,它打算以初始化脚本的root用户身份被调用,但是立即将其权限放到非特权的foo用户。 但是,我还希望这个/usr/sbin/foo程序在由于严重错误而退出时删除它的pid文件。 但是由于它已经放弃了它的特权,它不再有能力从/var/run目录中删除文件。 我目前的做法是使用seteuid而不是setuid来放弃我的权限,然后在退出之前立即重新提高权限,以便我可以正确地从/var/run删除pid文件。 然而,我遇到了各种各样的图书馆和外部程序遇到的许多问题,当用不同的euid而不是uid进行调用时,这些问题会变得无关紧要。 有没有其他办法可以做到这一点? 我想另外一个select是把我的pidfile放在一个可以被root和foo用户写入的目录中。 但是我们所有的其他pidfiles都在/var/run ,包括其他程序的pidfiles,这些程序以非特权用户的身份运行,所以我想把foo.pid文件放在那里。 除了使用seteuid还有什么办法可以做到吗?

在使用VirtualEnv时将Celery作为守护程序运行

我已经在我的亚马逊linux服务器上安装并testing了芹菜,使用mysql作为消息传递后端,并且在直接运行程序时工作正常。 我的Python项目和芹菜安装位于virtualenv。 但是,如果我尝试在这里使用脚本来守护芹菜,程序将拒绝在后台运行。 我使用CELERYD =“/ opt / apps / myenv / [celerydpath]”将celery的virtualenv安装位置传递给configuration文件中的守护程序,这等同于在启动芹菜时使用标志-cmd。 启动工作节点1后,脚本始终停止并等待,就像我正在直接运行程序并且不守护它一样。 芹菜在这一点是活跃的,但在closuresterminal窗口或按ctrl-c后停止。 我已经尝试运行没有 – CMD,它似乎运行在后台,但工人不会启动,并调用停止返回一个“未知的实例”。 任何build议,将不胜感激。

systemd忽略启动服务时的返回码

我在编写一个简单守护进程的单元文件时遇到了这个问题。 当守护进程在启动时返回“1”时,systemd会忽略它,看起来守护进程已成功启动,而实际上已经死了。 例如,我有非常简单的shell脚本: #!/bin/bash exit 1 所以单元文件看起来像这样: [Unit] Description=test service After=syslog.target [Service] User=testuser Group=testuser ExecStart=/usr/local/bin/return1 [Install] WantedBy=multi-user.target 试着开始,似乎没问题: # service testservice start # echo $? 0 但实际上它已经死了 # service testservice status ● testservice.service – test service Loaded: loaded (/etc/systemd/system/testservice.service; enabled) Active: failed (Result: exit-code) since Fri 2016-01-22 14:51:45 MSK; 1min 13s ago Process: 16416 ExecStart=/usr/local/bin/return1 […]