别忘了在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]#
分享到:
相关推荐
通过`&`、`disown`、`nohup`、`Screen`和`Tmux`等工具,你可以根据具体需求选择合适的方式确保命令在后台稳定运行,即便你离开终端,它们也会按部就班地完成任务。这些技能对于日常的Linux系统管理和自动化任务执行...
2. **环境变量设置**:在运行jar之前,可能需要设置一些环境变量,比如JVM参数(如内存大小`-Xms`和`-Xmx`),或者应用相关的环境变量。 3. **后台运行**:若需让jar程序在后台运行,可以添加`&`符号在命令末尾,如...
3. **bg** 命令:将挂起的作业(job)放到后台继续运行,允许用户在不中断作业的情况下执行其他任务。 4. **bind** 命令:关联Readline库中的关键字序列或宏,自定义键盘快捷键。 5. **break** 保留字:在循环(如...
在Shell中,内置命令是直接由Shell执行的,而无需启动新的进程,这使得它们比外部命令更快、更有效率。以下是主要的Shell内置命令的详细说明: 1. `. (source)`: 用于读取并执行指定文件中的命令,通常用于加载配置...
在深入探讨bash shell内建命令之前,我们先来理解一下bash是什么以及为什么它对更好地掌握Linux至关重要。Bash,全称Bourne-Again SHell,是Unix和类Unix操作系统中最常用的shell之一,包括所有主要的Linux发行版。...
`nohup` 命令会忽略 SIGHUP 信号,使得进程即使在用户退出登录后仍然能够继续运行。同时,`nohup` 还会创建一个名为 `nohup.out` 的文件,用来记录进程的标准输出。 #### 2. 使用 `setsid` 命令 另一种绕过 SIGHUP...
- disown命令:在某些shell中,可以使用`disown`命令将已运行的后台进程从当前会话中分离,使其不受hangup信号影响。 4. 资源管理与性能影响 后台运行的程序会占用系统资源,包括CPU时间、内存和磁盘I/O。过多的...
我们知道,将一个或多个命名包含在“()”中就能让这些命令在子 shell 中运行中,从而扩展出很多有趣的功能,我们现在要讨论的就是其中之一。当我们将"&"也放入“()”内之后,我们就会发现所提交的作业并不在作业列表...
2. **手动转换已启动的进程为后台任务**:若进程已经在运行,但希望将其转换为后台任务,则可以在进程暂停的情况下(通常通过按下Ctrl+Z实现),使用`bg`命令使其在后台继续执行。 #### 三、SIGHUP信号 虽然将Web...
Linux 命令使用技巧大全 本资源将详细介绍最有用的 Linux 命令使用技巧大全,为 Linux 新手和老手提供实用的命令技巧和经验分享。 一、基本命令 1.1 了解基本的 bash * 通读整个 bash man page * 学习 VIM,在 ...
- `# nohup command &`:使进程在后台运行且不受终端关闭的影响。 - `# disown %job`:使作业脱离终端控制。 #### 三、文件系统操作 - **文件权限管理** - `# chmod mode file`:更改文件权限。 - `# chown ...
5. **逻辑运算符**:`&&`和`||`用于组合命令,只有当第一个命令成功时才会执行第二个(`&&`),或者只有当第一个命令失败时才执行第二个(`||`)。 ### 三、脚本控制结构 1. **Shebang**:脚本的第一行通常以`#!/...
`disown -r`命令可以取消所有已后台运行的任务与当前shell的关联,这样即使shell退出,这些任务也会继续运行。 5. **Bash Shell中的`hash`命令**: `hash`命令用于维护shell的内部哈希表,存储命令的完整路径,以...
- `nohup` 命令可以让进程忽略挂断信号(SIGHUP),这意味着即使用户退出登录,被 `nohup` 启动的进程也会继续运行。 - `setsid` 命令可以创建一个新的会话,并将进程放入其中,这样可以确保进程不会受到终端会话的...
- bg[jobspec]:描述了将作业放到后台执行的命令。 - bind[-mkeymap][-lpsvPSV]:解释了bind命令来绑定或显示键绑定。 - break[n]:介绍了在循环或case语句中跳出的break命令。 - builtinshell-builtin[arguments]:...
交互式 Shell 环境允许用户执行内部及外部命令,可以在后台执行命令。 脚本方式– 脚本执行方式,将 Bash 语句写在文本文件中,批量执行 --------------------------------------------------------- 脚本方式允许...
xauth命令 – 修改x服务器访问授权unalias命令 – 取消命令别名logsave命令 – 将输出信息保存到指定的日志文件中hostname命令 – 显示和设置系统的主机名reset命令 – 设定终端机的状态disown命令 –
`nohup python test1.py &`或先运行`python test1.py`,然后`Ctrl+Z`挂起进程,再使用`bg`命令将进程放到后台,并使用`disown`命令使其与当前终端会话解耦。 2. **通过upstart方式实现**: Upstart是一个事件驱动...