<分区>
我需要在 Linux 下启动几个(比如每台机器两打,至少有八台服务器)几乎相同的进程,每个进程都有自己的命令行参数,并且每个进程都在自己的目录中。我不想手动执行此操作。
最好的方法是什么?/etc/init.d 是像 httpd 那样处理的(您会看到有几个进程在其下运行),还是有其他方式?
我应该补充一点,我也希望它们在死亡时自动启动,和/或在特定时间自动启动,所以可能至少 cron 和 monit 必须成为解决方案的一部分?
<分区>
我需要在 Linux 下启动几个(比如每台机器两打,至少有八台服务器)几乎相同的进程,每个进程都有自己的命令行参数,并且每个进程都在自己的目录中。我不想手动执行此操作。
最好的方法是什么?/etc/init.d 是像 httpd 那样处理的(您会看到有几个进程在其下运行),还是有其他方式?
我应该补充一点,我也希望它们在死亡时自动启动,和/或在特定时间自动启动,所以可能至少 cron 和 monit 必须成为解决方案的一部分?
最佳答案
如果您需要进程与控制终端相关联,您可以考虑使用 GNU Screen或 tmux .使用 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/