linux - linux中的多进程

标签 linux shell

<分区>

我需要在 Linux 下启动几个(比如每台机器两打,至少有八台服务器)几乎相同的进程,每个进程都有自己的命令行参数,并且每个进程都在自己的目录中。我不想手动执行此操作。

最好的方法是什么?/etc/init.d 是像 httpd 那样处理的(您会看到有几个进程在其下运行),还是有其他方式?

我应该补充一点,我也希望它们在死亡时自动启动,和/或在特定时间自动启动,所以可能至少 cron 和 monit 必须成为解决方案的一部分?

最佳答案

如果您需要进程与控制终端相关联,您可以考虑使用 GNU Screentmux .使用 Screen,您可以创建如下配置文件:

startup_message off
screen -t foo 1 /path/to/someprogram
screen -t bar 2 /path/to/another

如果您只为它们设置背景没问题,那么...就为它们设置背景。

#!/bin/bash

/usr/bin/nohup /path/to/someprogram &
/usr/bin/nohup /path/to/another &

echo "All done!"

如果您需要它们在死后重新启动,请考虑将它们包装在重新启动器中。看daemontools , 例如。或者像这样的简单 shell 脚本:

while ! /path/to/flakeybinary; do
  echo "Darn, died again." >&2
done
echo "Exited normally, yay."

关于linux - linux中的多进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11004050/

相关文章:

linux - 以编程方式启动交互式 shell

linux - 删除除每个前缀的最近 n 个文件之外的所有文件(基于文件日期)?

linux - 如何从 linux 中的文件中获取 pids 列表?

linux - libssh2_channel_close 将被阻塞,直到远程命令退出

linux - 什么是 shell 脚本?

windows - 如何安装 Git shell

python - stdout 从 shell 获取之前多于 1 行的内容

linux - 关于 skia 库的指南

linux - netem 延迟不会导致延迟增加

c++ - Windows 上的字符串大小与 Linux 上的不同