9.10 nohup:用户退出系统进程继续工作

nohup命令

  可以将程序以忽略挂起信号的方式运行起来,被运行程序的输出信息将不会显示到终端。

无论是否将nohup命令的输出重定向到终端,输出都将写入到当前目录的nohup.out文件中。如果当前目录的nohup.out文件不可写,则输出重定向到$HOME/nohup.out文件中。

让执行的命令在当前会话终止后继续保持运行

正常情况下,如果用户退出登录或会话终止,则用户正在执行并可持续一段时间的命令(非守护进程)将自动终止。使用nohup命令可以实现在用户退出或当前会话终止后继续保持运行,具体的例子如下:

[[email protected] ~]# nohup ping g.cn
nohup: 忽略输入并把输出追加到"nohup.out"
#<==当前终端已经hang住,此时强制关闭当前终端(例如关闭该标签或者Ss日客户端工具),这个ping命令依然会在后台运行。
# 但是Ctrl + C 会退出命令执行

[[email protected] ~]# ps -ef|grep ping
root       1818      1  0 19:19 ?        00:00:00 ping g.cn
root       1820   1797  0 19:19 pts/1    00:00:00 grep ping

[[email protected] ~]# tail -f nohup.out
64 bytes from 203.208.40.79: icmp_seq=97 ttl=128 time=42.2 ms
64 bytes from 203.208.40.79: icmp_seq=98 ttl=128 time=42.7 ms
64 bytes from 203.208.40.79: icmp_seq=99 ttl=128 time=42.7 ms
64 bytes from 203.208.40.79: icmp_seq=100 ttl=128 time=42.7 ms
64 bytes from 203.208.40.79: icmp_seq=101 ttl=128 time=42.6 ms
64 bytes from 203.208.40.79: icmp_seq=102 ttl=128 time=42.4 ms
64 bytes from 203.208.40.79: icmp_seq=103 ttl=128 time=43.0 ms
64 bytes from 203.208.40.79: icmp_seq=104 ttl=128 time=50.7 ms
64 bytes from 203.208.40.79: icmp_seq=105 ttl=128 time=42.9 ms
64 bytes from 203.208.40.79: icmp_seq=106 ttl=128 time=43.0 ms

在工作中我们一般会配合&符运行nohup命令,让程序直接在后台运行:

[[email protected] ~]# nohup ping g.cn &
[1] 1855
[[email protected] ~]# nohup: 忽略输入并把输出追加到"nohup.out"

[[email protected] ~]# tail -f nohup.out
64 bytes from 203.208.40.95: icmp_seq=8 ttl=128 time=42.1 ms
64 bytes from 203.208.40.95: icmp_seq=9 ttl=128 time=43.3 ms
64 bytes from 203.208.40.95: icmp_seq=10 ttl=128 time=44.1 ms
64 bytes from 203.208.40.95: icmp_seq=11 ttl=128 time=42.5 ms
64 bytes from 203.208.40.95: icmp_seq=12 ttl=128 time=42.9 ms
64 bytes from 203.208.40.95: icmp_seq=13 ttl=128 time=42.6 ms
64 bytes from 203.208.40.95: icmp_seq=14 ttl=128 time=42.8 ms
64 bytes from 203.208.40.95: icmp_seq=15 ttl=128 time=42.8 ms
64 bytes from 203.208.40.95: icmp_seq=16 ttl=128 time=134 ms
64 bytes from 203.208.40.95: icmp_seq=17 ttl=128 time=42.8 ms
64 bytes from 203.208.40.95: icmp_seq=18 ttl=128 time=42.2 ms
64 bytes from 203.208.40.95: icmp_seq=19 ttl=128 time=43.2 ms
64 bytes from 203.208.40.95: icmp_seq=20 ttl=128 time=43.7 ms
64 bytes from 203.208.40.95: icmp_seq=21 ttl=128 time=42.0 ms

类似功能的命令还有screen和直接使用&符。

原文地址:https://www.cnblogs.com/fadewalk/p/10846978.html

时间: 2024-10-13 12:08:58

9.10 nohup:用户退出系统进程继续工作的相关文章

&nbsp; &nbsp; 添加10个用户user1到user10,但要求只有用户不存在的情况下才能添加

#!/bin/bash       for I in `seq 1 10`;do       cut -d: -f1 /etc/passwd |grep"user$I" 2>>/tmp/etc.err || useradd user$I       done 添加10个用户user1到user10,但要求只有用户不存在的情况下才能添加

Android 月活跃人数超过10亿用户了,我却审美疲劳了

一早上起来就看到谷歌召开了2014 I/O大会,铺天盖地的信息有点把我砸晕了.恍惚之间,我看到"Android 月活跃人数已超过10亿"."Android应用每年安装量增加236%"."Android占平板电脑出货量的62%"这些庞大的数据-- Android果然是发展迅猛,就跟撒欢的野狗一样,可怜的WP只能够远远的看着Android身后的尘土.Android越来越惊艳,越来越成熟,用户的体验也是越来越好,但是我却是一点兴趣都提不起不来.谷歌在出

for循环添加10个用户和删除10个用户

1. 循环添加10个用户: #!/bin/bash# for i in {1..10}; do    if id user$i &> /dev/null; then        echo "user$i exists."    else        useradd user$i        echo user$i | passwd --stdin user$i &> /dev/null        echo "add user user$i

bash中for循环添加10个用户和删除10个用户

1. 循环添加10个用户: #!/bin/bash# for i in {1..10}; do    if id user$i &> /dev/null; then        echo "user$i exists."    else        useradd user$i        echo user$i | passwd --stdin user$i &> /dev/null        echo "add user user$i

Ubuntu 13.10上用户如何获得root权限,用户如何获得永久root权限,如果配置root登录

一.用户如何获得root权限: 1. 进入terminal 2. 输入sudo  passwd root   并设置密码,提示要你输入两次密码,自己设定密码,一定要记住,然后切换到root使用 3. 输入 su root, 要求你输入密码,然后输入刚才设定的密码回车就进去了 4. 如果不想切换root但是想拥有大部分root权限,可以在使用命令时候加上sudo, sudo mount挂载 sudo 命令 ...... another 如果你想在linux上切换用户,那么输入 su  + 用户名就

批量创建10个用户stu01-stu10

批量创建10个用户stu01-stu10,并且设置随机8位密码,要求不能用shell循环(例如:for,while等),只能用命令及管道实现. ##方法1: [[email protected] ~]# echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1 ; pass=$((RANDOM+10000000)); echo "$pass"|passwd --stdin \1; echo -e

基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.10.配置用户NTF服务

2.10.配置用户NTF服务 2.10.1.配置节点RAC1 1) [[email protected] sysconfig]#sed -i 's/OPTIONS/#OPTIONS/g' /etc/sysconfig/ntpd 2) [[email protected] sysconfig]#cat >> /etc/sysconfig/ntpd << EOF > OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid" &g

通过Global.asax文件里面的Session_End事件记录用户退出 (or session timeout)

Session.Abandon()和timeout会触发Global.asax的Session_End事件.可以通过这个事件来记录用户退出或者session timeout,这样每个用户都会有一条登陆和退出记录. 退出登陆调用方法: public void PerformLogout() { HttpContext.Current.Session["PerformLogout"] = true; HttpContext.Current.Session.Abandon(); } Sess

添加user_00-user09 10个用户,并且给他们设置一个随机密码,密码要求10位包含大小写字

添加user_00-user09 10个用户,并且给他们设置一个随机密码,密码要求10位包含大小写字母以及数字,注意需要把每个用户的密码记录到一个日志文件里 答案: #! /bin/bash for i in `seq -w 00 09` do   useradd user_$i   p=`mkpasswd -l 10 -s 0`   echo "user_$i $p" >> /tmp/user0-9.pass   echo $p |passwd --stdin user_