redcomet 发表于 2003-10-12 00:41:43

请问一个关于nohup的菜菜问题

我在rc.local里设置一个程序开机启动

#bin/bash
cd /home/softwarez/CS/hlds
nohup ./cs &

可是我不知道该怎么关闭这个程序,在系统监视器kill了进程,但是事实上这个进程依然存在

我想知道的是如何在有需要的时候关闭该程序,或者重启该进程

谢谢

Kuye 发表于 2003-10-12 03:22:36

这里没有必要用 nohup 吧?如果是希望输出内容不显示到屏幕上可以直接用 管道符将输出重定向到某个文件,或者干脆 /dev/null。

如果说你真的想做一个程序,比较好的办法是不要将它写在 rc.local 里,自己写一个 /etc/init.d 下的服务脚本,然后用 service 命令像控制普通系统服务一样控制这个程序 - start, stop, restart, reload ....

Gentoo 所使用的 BSD Style init 和 Redhat 所使用的 SysV init 格式不太一样,Gentoo 下的服务脚本非常好写,这里有个例子,是 esound 服务的内容:
#!/sbin/runscript
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /home/cvsroot/gentoo-x86/media-sound/esound/files/esound.init.d,v 1.2 2003/05/30 22:55:56 utx Exp $

# Note: You need to start esound on boot, only if you want to use it over network.

# Warning: To use global esound daemon, you must also set spawn_options
# in /etc/esd/esd.conf to the same protocol (i. e. add "-tcp") and unset
# "Enable sound server startup" in gnome-sound-properties for all users
# and optionally handle authentization.

. /etc/conf.d/esound

depend() {
      use net portmap
}

start() {
      ebegin "Starting esound"
      start-stop-daemon --start --quiet --background --exec /usr/bin/esd -- $ESD_START $ESD_OPTIONS
      eend $?
}

stop() {
      ebegin "Stopping esound"
      start-stop-daemon --stop --quiet --exec /usr/bin/esd
      eend $?
}

redcomet 发表于 2003-10-12 16:51:15

我也不懂这儿是否需要nohup ;p,平时启动用nohup,所以一块儿写到rc.local里去了
我用的是rh,去看看脚本该怎么写,不会再回来请教,thx
页: [1]
查看完整版本: 请问一个关于nohup的菜菜问题