标签: daemon

如何创建交互式守护程序登录?

我在 debian/linux 机器上运行一个服务,该服务在启动时运行,带有一个我可以随时附加的“屏幕”会话。

我想创建一个可以运行此服务的用户名。目前我使用“常规”登录帐户。我想要专用于此服务的用户名的附加安全性(类似于 'nobody' 或 'web' 与 apache 一起使用的方式)。

要求:

  • 无法在本地或远程登录(因此无需管理密码)
  • 允许用户访问屏幕会话并与服务交互的能力。

我想该解决方案将创造性地使用 su/sudo 以及如何创建帐户的详细信息。

linux debian login user-management daemon

2
推荐指数
1
解决办法
2189
查看次数

Linux - 以“nobody”身份运行守护进程

我的根目录中有一个守护进程,目前正在以 root 身份运行。但是,由于该程序可以读取文件系统,这显然是一个安全问题。我如何以无人身份运行它以便我可以解决这个问题?

执行“su - nobody -c /root/myscript”不起作用,返回权限被拒绝错误。我似乎可以解决这个问题的唯一方法是:

  1. Chmod -R 777 /root,我不想在我的根目录上做这件事,也会弄乱 ssh。
  2. 将脚本移动到 /opt 或 /var 然后执行 (1)

当然,我可能缺少一个简单的解决方案。我可以把它告诉任何人,但这也不能解决问题。有任何想法吗?

linux permissions daemon nobody

2
推荐指数
1
解决办法
6011
查看次数

如何为Linux服务设置系统环境变量?

我需要为应用程序服务器设置环境变量。例如: ORACLE_HOMEORACLE_SIDJAVA_OPTSCATALINA_BASE

我知道如何在 Windows 中设置系统环境变量,但对 Linux 没有想法。

我手动启动应用服务器,只需分配和导出它们,然后启动应用服务器(Tomcat,Oracle)。但是如何为 Linux 服务设置环境变量,它会在系统启动时自动启动?

UPD

我使用 Centos 5.4。服务器用户 shell 是/bin/sh

linux shell daemon service

2
推荐指数
1
解决办法
5527
查看次数

Ubuntu 守护进程最佳实践?

我有一个 RingoJS 网络服务器(在 Jetty 上运行),它是 Apache 反向代理设置的一部分。

我希望多个 Ringo 进程在后台自主运行,在重启时自动启动等。基本上,与 Apache 或 Postgresql 守护进程相同。

我研究了在后台运行的进程(通过 & 或 bg)、nohup 和使用 screen 来维护多个上下文。我不确定这里的最佳做法是什么。

我希望能够轻松识别(友好名称)正在运行的每个 RingoJS 进程。(每个应用程序一个)。然后能够像使用 apachectl 或其他东西一样轻松地启动和停止它们。我希望进程在重新启动时自动启动,并且不受重复 ssh 会话的影响。

Screen 似乎是一个不错的选择,但它的用例似乎更多地用于移植 shell 上下文,而不是用于维护长时间运行的系统进程。我可以在后台运行作业,但担心注销后的僵尸进程或无法清楚识别正在运行的应用程序/服务的神秘 PID。

任何人都可以提供一些关于我“应该”做什么来实现这一结果的指示?

谢谢。

linux ubuntu jetty daemon service

2
推荐指数
1
解决办法
1148
查看次数

运行 MySQL 守护进程时出错

我在运行我的 mysql 守护程序时遇到一个奇怪的错误,因为用户 'mysql' 在这里是命令喷出的内容,现在我已经检查过并且该实例尚未运行:S 所以,我不知道为什么它会显示这个输出:

120729 18:54:28 [Note] Plugin 'FEDERATED' is disabled.
120729 18:54:28 InnoDB: The InnoDB memory heap is disabled
120729 18:54:28 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120729 18:54:28 InnoDB: Compressed tables use zlib 1.2.5
120729 18:54:28 InnoDB: Using Linux native AIO
120729 18:54:28 InnoDB: Initializing buffer pool, size = 128.0M
120729 18:54:28 InnoDB: Completed initialization of buffer pool
120729 18:54:28 InnoDB: highest supported file format is Barracuda.
120729 18:54:28  InnoDB: Waiting for the background …
Run Code Online (Sandbox Code Playgroud)

mysql fedora daemon dedicated-server

2
推荐指数
1
解决办法
1万
查看次数

如何配置 Python 脚本作为守护进程运行

我有几个网络服务器坐在负载均衡器后面,我在这里找到了“watcher.py”:https : //github.com/splitbrain/Watcher

我选择这个脚本有几个原因:通过文件夹递归,很多触发选项

无论如何,我将使用它来同步负载平衡服务器之间的 Web 内容。有没有办法确保这个脚本在启动时运行?

ubuntu nginx daemon

2
推荐指数
1
解决办法
8005
查看次数

如何在 CentOS 机器上安装守护进程?

我基本上在寻找相当于:

sudo apt-get 安装守护进程

来自 Debian

我正在尝试按照此处概述的方式配置 Solr 守护程序/sf/answers/150562191/

daemon centos solr

2
推荐指数
1
解决办法
9129
查看次数

如何在启动时启动 git-daemon?

我已经创建了脚本来控制 Fedora28 上 git-daemon 的启动、停止等。我现在试图将这些脚本链接到 systemd 服务,以便 git-daemon 在重启后可用。

主脚本 (gitT) 是...

#!/bin/bash
case "$1" in
  'start')
    echo "Starting git-daemon"
    /home/git/scripts/start.sh >> /home/git/gitT.log
    ;;
  'stop')
    echo "Stopping git-daemon"
    /home/git/scripts/stop.sh >> /home/git/gitT.log
    ;;
  'restart')
    echo "Bouncing git-daemon"
    /home/git/scripts/bounce.sh >> /home/git/gitT.log
    ;;
  'status')
    echo "Status of git-daemon"
    /home/git/scripts/status.sh
    ;;
  *)
    echo "`basename $0`: usage: `basename $0` { stop | start | restart | status }"
    ;;
esac
Run Code Online (Sandbox Code Playgroud)

辅助脚本是...

启动文件

#!/bin/bash
# --------------------------
echo "---------------------"
/usr/bin/git daemon --export-all --enable=receive-pack --verbose --pid-file=/home/git/git-daemon.pid --base-path=/home/git/repos >> …
Run Code Online (Sandbox Code Playgroud)

daemon git start-stop-daemon systemd

2
推荐指数
1
解决办法
937
查看次数

对于这项特定任务,哪个更好:守护进程或具有简单程序的 CRON 作业?

我有一个程序可以将文件从网络驱动器复制到每个用户的特定位置。它需要每 12 小时执行一次,并且需要在系统(redhat linux)启动时启动。

我正在考虑将程序转换为守护程序并让它休眠 12 个小时,然后醒来,复制文件并进入睡眠状态。然而,这是矫枉过正吗?

更好的是:一个简单的程序,它复制文件,然后每 12 小时从 CRON 作业或守护程序中退出并调用它?什么对系统更好?

谢谢!

linux daemon cron

1
推荐指数
1
解决办法
1791
查看次数

nginx 和 php5-fpm init.d 启动脚本都不起作用并且没有返回任何错误..?但他们曾经完美地工作

我已经在我的 Ubuntu 机器上使用 nginx 和 php5-fpm 有一段时间了。一切都已正确配置和设置,并且运行起来非常棒。

我一直像往常一样更新和升级软件包,但根本没有触及 nginx 或 php5-fpm 配置文件(因此我很确定这不是我的错......)

基本上,我注意到 nginx 没有按应有的方式运行。我运行了命令sudo service nginx start,脚本什么也没做。尝试做任何事情时都会发生同样的事情 - startstoprestartreload。“php5-fpm”初始化脚本也会发生这种情况——尽管所有其他初始化脚本似乎都运行正常。

尝试启动 nginx 或 php5-fpm 时,会发生以下情况:

root@HAL:/etc# service php5-fpm start
root@HAL:/etc#
Run Code Online (Sandbox Code Playgroud)

我不明白出了什么问题。该脚本没有返回错误,但同样没有像往常一样启动守护程序或报告成功。

作为参考,这两个安装都来自官方的 nginx 和 php5-fpm PPA。两者同时开始这样做的事实让我感到震惊-因为它们都是不相关的包。

从那以后,我从我的系统中清除了两组软件包,apt-get purge ...并且apt-get remove --purge ...它们都成功地删除了这些软件包、它们的配置文件和它们的 init.d 启动脚本。

重新安装 nginx 后,我现在又有了一个正常运行的启动脚本 - 我可以像往常一样启动 Web 服务器。但是,php5-fpm 仍然遇到启动脚本奇怪的过早退出..我真的无法弄清楚是什么原因造成的。

我不知道最初是什么原因导致这种情况发生,但已经设法修复了 nginx。我现在需要修复 php5-fpm 启动脚本。

如果有人能对这种情况有所了解,我将不胜感激!这两个问题很可能是相关的 - 它们是由我做了一些愚蠢的事情引起的。但现在我需要修复它。这次我很幸运——因为这些问题只是在我的开发服务器上。但是我还有另外两个以类似方式配置的实时服务器,我担心这两个也会发生同样的事情!

有没有其他人遇到过这个?你有什么忠告吗?

谢谢

ubuntu nginx daemon init.d

1
推荐指数
1
解决办法
1028
查看次数

systemd 根据条件重新启动作业

我有一个仅运行在带有 wine 和 Xvfb 的 linux 机器上的 Windows 守护程序。由于这个相当实验性的设置,守护程序会定期崩溃,我想实现某种机制来自动重新启动守护程序。目前我有一个带有Restart=always设置的 systemd 单元定义。

但是,我注意到有时守护程序会崩溃,但不会退出它的进程。这相当于显示一个带有“守护程序崩溃,您要发送错误报告吗?”问题的对话框。因此,该进程仍在运行,但守护进程已停止工作。

我可以在我的 linux 机器上检查的这种现象的唯一外部行为是两个新文件,它们出现在某个位置但具有可变文件名(它们依赖于时间,并且名称中有时间戳)。我认为它们是某种内存转储或堆栈跟踪,最初应该用于发送错误报告。

所以现在我正在为 systemd 寻找一个解决方案来捕获这个解决方案,比如

  1. 在单元启动时,查看故障转储目标目录并制作目录内容的快照
  2. 启动守护进程
  3. 定期查看目录,如果有新文件,不在快照中,根据一些正则表达式,重新启动守护进程并刷新快照。

我想过一个用 bash 或其他东西编写的包装器,但有两个问题:首先我不知道如何实现这种行为,其次,这将使 systemd 的使用完全过时,因为脚本处理所有崩溃处理,而 systemd 只会执行脚本。

我还考虑过使用 systemd 的给定功能定期重新启动守护程序,但这会非常低效(考虑到 Wine 包装器中的 Windows 守护程序一开始并不是低效的),因为它有时会重新启动守护程序当不需要时,或者在守护程序崩溃后需要一段时间才能定期重新启动。

解决这个问题的最佳解决方案是什么?

仅供参考:我正在谈论的守护程序是 Google 相册的上传程序。出于某种原因,谷歌没有为 Linux 发布它。

daemon wine systemd

1
推荐指数
1
解决办法
2806
查看次数

查看 /etc/init.d/* 中正在运行的内容的简单方法?

我把我的笔记本电脑电缆留在家里,我靠电池运行。我正在使用 Ubuntu Linux 9.10。我知道powertop并且我正在使用它。它告诉我我安装的一些东西(postgres、mysql 等)正在运行,所以我停止了它们。

但是,是否有一个命令可以告诉我/etc/init.d/正在运行的所有内容?然后我可以决定停止其中的一些。

linux ubuntu daemon

0
推荐指数
1
解决办法
2365
查看次数

从 GNU Screen 运行服务

在将进程作为守护进程运行时,需要采取很多预防措施。在我看来,在 GNU Screen 内运行它是一个可行的选择,因为它保证在注销服务器后运行该进程,在重新登录时可以检查输出等。

从 Screen 内部运行例如 Web 服务器有什么缺点吗?我有一个从 Screen 内部运行的服务器进程,该进程在过去几周内多次无法访问。我立即重新启动了它,所以我不知道它是否因为某些内部问题(相当简单的脚本,所以我怀疑)而死了,或者是 Screen 的错。

daemon service gnu-screen

-2
推荐指数
1
解决办法
487
查看次数