我需要在Linux下启动几个(每台机器至少有8台服务器)几乎相同的进程,每个进程都有自己的命令行参数,每个进程都在自己的目录中。我不想亲手做这件事。Linux中的多个进程
这样做的最好方法是什么?它是以/etc/init.d这种方式与httpd这样做的(你会看到几个进程正在运行),还是有其他方式?
我应该补充说,如果他们死亡,或者在某个特定时间,我也希望他们自动启动,因此可能至少cron和monit必须成为解决方案的一部分?
我需要在Linux下启动几个(每台机器至少有8台服务器)几乎相同的进程,每个进程都有自己的命令行参数,每个进程都在自己的目录中。我不想亲手做这件事。Linux中的多个进程
这样做的最好方法是什么?它是以/etc/init.d这种方式与httpd这样做的(你会看到几个进程正在运行),还是有其他方式?
我应该补充说,如果他们死亡,或者在某个特定时间,我也希望他们自动启动,因此可能至少cron和monit必须成为解决方案的一部分?
如果您需要将流程与控制终端关联,您可以考虑使用GNU Screen或tmux。随着屏幕上,您可以创建类似的配置文件:
startup_message off
screen -t foo 1 /path/to/someprogram
screen -t bar 2 /path/to/another
如果你还好只是backgrounding他们,然后...只是背景他们。
#!/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."
我要补充一点,我还希望他们能够自动,如果他们死开始,和/或在一定的时间,所以可能至少cron和可能的monit必须是一部分的解决方案? – Ivan
如果您要添加到您的问题中,请单击您的问题下的[编辑](http://stackoverflow.com/posts/11004050/edit)链接并编辑该问题。评论不应包含重要信息,否则您的问题将无法得到解答。 – ghoti
这些流程是否需要与控制终端相关联,还是可以在后台运行? – ghoti