`

别忘了在disown之前执行bg命令,否则进程会一直stopped

阅读更多

别忘了在disown之前执行bg命令,否则进程会一直stopped

今天在Linux下测试程序,是直接执行的命令,如下所示:

[root@NODE22 bin]# ./cap
#======= CAP v20120216f =======#
prog-path: /root/work22/ct08/bin/
prog-name: cap
cfg_name='../cfg/cap.cfg'
loadconfig ok
checkconfig ok
System::Init ok
cap start ok, pid 8342

想到这个程序要在我下班之后继续执行,于是我就按下了Ctrl+Z

 


[1]+  Stopped                 ./cap

 

因为我准备关闭SecureCRT准备收工了,所以决定让它脱离我这个终端,执行了disown来做这件事

[root@NODE22 bin]# disown %1
-bash: warning: deleting stopped job 1 with process group 8342
[root@NODE22 bin]#

 

看看这个操作灵不灵,我看了一下日志,发现日志没有继续往下记录,正常情况应该往下记录的。

 

想起来,没有在disown之前执行bg命令,程序已经处于Stopped状态(看disown命令的输出),得让它继续往下执行

 

[root@NODE22 bin]# killall -CONT cap

 

日志也正常了。切记啊,切记啊:别忘了在disown之前执行bg命令

 

 

本文地址: http://codingstandards.iteye.com/blog/1408321

 

 

相关帮助信息:

[root@NODE22 eap_designer]# help disown
disown: disown [-h] [-ar] [jobspec ...]
    By default, removes each JOBSPEC argument from the table of active jobs.
    If the -h option is given, the job is not removed from the table, but is
    marked so that SIGHUP is not sent to the job if the shell receives a
    SIGHUP.  The -a option, when JOBSPEC is not supplied, means to remove all
    jobs from the job table; the -r option means to remove only running jobs.
[root@NODE22 eap_designer]# help bg
bg: bg [job_spec ...]
    Place each JOB_SPEC in the background, as if it had been started with
    `&'.  If JOB_SPEC is not present, the shell's notion of the current
    job is used.
[root@NODE22 eap_designer]# help fg
fg: fg [job_spec]
    Place JOB_SPEC in the foreground, and make it the current job.  If
    JOB_SPEC is not present, the shell's notion of the current job is
    used.
[root@NODE22 eap_designer]# help jobs
jobs: jobs [-lnprs] [jobspec ...] or jobs -x command [args]
    Lists the active jobs.  The -l option lists process id's in addition
    to the normal information; the -p option lists process id's only.
    If -n is given, only processes that have changed status since the last
    notification are printed.  JOBSPEC restricts output to that job.  The
    -r and -s options restrict output to running and stopped jobs only,
    respectively.  Without options, the status of all active jobs is
    printed.  If -x is given, COMMAND is run after all job specifications
    that appear in ARGS have been replaced with the process ID of that job's
    process group leader.
[root@NODE22 eap_designer]#

 

 

 

1
0
分享到:
评论
1 楼 superlittlefish 2012-02-16  
好久没有看到更新了.  要是我就选择在screen 中操作.
用简单的方式解决问题.

相关推荐

    在后台运行Linux命令的方法

    通过`&`、`disown`、`nohup`、`Screen`和`Tmux`等工具,你可以根据具体需求选择合适的方式确保命令在后台稳定运行,即便你离开终端,它们也会按部就班地完成任务。这些技能对于日常的Linux系统管理和自动化任务执行...

    centos上通过sh文件启动jar等程序与命令详解.zip

    2. **环境变量设置**:在运行jar之前,可能需要设置一些环境变量,比如JVM参数(如内存大小`-Xms`和`-Xmx`),或者应用相关的环境变量。 3. **后台运行**:若需让jar程序在后台运行,可以添加`&`符号在命令末尾,如...

    bash_shell内建命令和保留字

    3. **bg** 命令:将挂起的作业(job)放到后台继续运行,允许用户在不中断作业的情况下执行其他任务。 4. **bind** 命令:关联Readline库中的关键字序列或宏,自定义键盘快捷键。 5. **break** 保留字:在循环(如...

    主要shell内置命令

    在Shell中,内置命令是直接由Shell执行的,而无需启动新的进程,这使得它们比外部命令更快、更有效率。以下是主要的Shell内置命令的详细说明: 1. `. (source)`: 用于读取并执行指定文件中的命令,通常用于加载配置...

    bash shell内建命令

    在深入探讨bash shell内建命令之前,我们先来理解一下bash是什么以及为什么它对更好地掌握Linux至关重要。Bash,全称Bourne-Again SHell,是Unix和类Unix操作系统中最常用的shell之一,包括所有主要的Linux发行版。...

    linux server

    `nohup` 命令会忽略 SIGHUP 信号,使得进程即使在用户退出登录后仍然能够继续运行。同时,`nohup` 还会创建一个名为 `nohup.out` 的文件,用来记录进程的标准输出。 #### 2. 使用 `setsid` 命令 另一种绕过 SIGHUP...

    后台运行.pdf

    - disown命令:在某些shell中,可以使用`disown`命令将已运行的后台进程从当前会话中分离,使其不受hangup信号影响。 4. 资源管理与性能影响 后台运行的程序会占用系统资源,包括CPU时间、内存和磁盘I/O。过多的...

    Linux技巧:让进程后台运行

    我们知道,将一个或多个命名包含在“()”中就能让这些命令在子 shell 中运行中,从而扩展出很多有趣的功能,我们现在要讨论的就是其中之一。当我们将"&"也放入“()”内之后,我们就会发现所提交的作业并不在作业列表...

    Linux守护进程的启动方法

    2. **手动转换已启动的进程为后台任务**:若进程已经在运行,但希望将其转换为后台任务,则可以在进程暂停的情况下(通常通过按下Ctrl+Z实现),使用`bg`命令使其在后台继续执行。 #### 三、SIGHUP信号 虽然将Web...

    最有用的Linux命令使用技巧

    Linux 命令使用技巧大全 本资源将详细介绍最有用的 Linux 命令使用技巧大全,为 Linux 新手和老手提供实用的命令技巧和经验分享。 一、基本命令 1.1 了解基本的 bash * 通读整个 bash man page * 学习 VIM,在 ...

    linux常用命令手册.pdf

    - `# nohup command &`:使进程在后台运行且不受终端关闭的影响。 - `# disown %job`:使作业脱离终端控制。 #### 三、文件系统操作 - **文件权限管理** - `# chmod mode file`:更改文件权限。 - `# chown ...

    Advanced Bash Shell Scripting

    5. **逻辑运算符**:`&&`和`||`用于组合命令,只有当第一个命令成功时才会执行第二个(`&&`),或者只有当第一个命令失败时才执行第二个(`||`)。 ### 三、脚本控制结构 1. **Shebang**:脚本的第一行通常以`#!/...

    10个Linux核心面试问题及解答.pdf

    `disown -r`命令可以取消所有已后台运行的任务与当前shell的关联,这样即使shell退出,这些任务也会继续运行。 5. **Bash Shell中的`hash`命令**: `hash`命令用于维护shell的内部哈希表,存储命令的完整路径,以...

    Linux技术积累Linux技术积累Linux技术积累

    - `nohup` 命令可以让进程忽略挂断信号(SIGHUP),这意味着即使用户退出登录,被 `nohup` 启动的进程也会继续运行。 - `setsid` 命令可以创建一个新的会话,并将进程放入其中,这样可以确保进程不会受到终端会话的...

    bash的man页(中英对照)

    - bg[jobspec]:描述了将作业放到后台执行的命令。 - bind[-mkeymap][-lpsvPSV]:解释了bind命令来绑定或显示键绑定。 - break[n]:介绍了在循环或case语句中跳出的break命令。 - builtinshell-builtin[arguments]:...

    Shell编程介绍.pptx

    交互式 Shell 环境允许用户执行内部及外部命令,可以在后台执行命令。 脚本方式– 脚本执行方式,将 Bash 语句写在文本文件中,批量执行 --------------------------------------------------------- 脚本方式允许...

    kernelversion命令 打印内核主版本号

    xauth命令 – 修改x服务器访问授权unalias命令 – 取消命令别名logsave命令 – 将输出信息保存到指定的日志文件中hostname命令 – 显示和设置系统的主机名reset命令 – 设定终端机的状态disown命令 –

    Python脚本后台运行的几种方式

    `nohup python test1.py &`或先运行`python test1.py`,然后`Ctrl+Z`挂起进程,再使用`bg`命令将进程放到后台,并使用`disown`命令使其与当前终端会话解耦。 2. **通过upstart方式实现**: Upstart是一个事件驱动...

Global site tag (gtag.js) - Google Analytics