Linux:如何将parameter passing给`service foo start`(在命令行中)?

我想通过一个论点,我开始的服务。 例如,在debugging模式下启动服务器。 喜欢,

service jboss-as start debug 

或者这样。 但service似乎不支持。

有什么方法吗? (对于RHEL 6,如果有的话)

注:这与Ubuntu / Linux类似:启动脚本(sysvinit)通常如何定义启动参数? 但不一样。

在RHEL中你有/ etc / sysconfig文件夹。 在这里你定义启动参数。 在你的启动脚本中包含如下内容:

 if [ -f /etc/sysconfig/$prog ] ; then . /etc/sysconfig/$prog fi 

检查现有的服务的例子。

对于开发,你可以把你的启动参数放在一个导出的variables中(例如在.bashrc中),你可以随时手动覆盖。

编辑

如果你真的想使用service还有其他的select。

你的脚本应该至less支持startstop 。 但是你也可以实现一个debug命令。 并开始您的程序:

 service foo debug 

另一种方法是检查脚本中的第二个参数,并使用以下命令启动程序:

 service foo start debug 

修改你的初始化脚本,如下所示:

 case "$1" in start) if [ "$2" = "debug" ] then start_debug else start fi ;; 

在Ubuntu中,启动参数通常位于:

 /etc/default/<service_name> 

如上所述,在检查其存在之后,我会从系统特定的文件中获取额外的参数。

我不喜欢添加任何额外的选项到服务启动。