• 进程后台执行和指定日志文件输出


    对于shell脚本执行,没有任何报错,也没有找到看到任何日志的情况,运用这种执行日志重定向输出,可以判断执行出错位置

    1、linux中的 &符号

    在Linux中,当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。
    可以使用&命令把作业放到后台执行。实际上,这样是将命令放入到一个作业队列中了:

    $ ./test.sh &
    [1] 17208

    $ jobs -l
    [1]+ 17208 Running ./test.sh &
    在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。

    不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。
    如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
    command >out.file 2>&1 &
    在上面的例子中,2>&1表示所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。
    当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。

    2、 退出账号终端窗口后,还需进程执行,用nohup conmmand &
    如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令
    该命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。
    该命令的一般形式为: nohup conmmand &

    如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
    nohup command > myout.file 2>&1
    在上面的例子中,输出被重定向到myout.file文件中。

  • 相关阅读:
    C# Split() 去除 分组
    C#获取当前路径的7种方法
    给 C# 开发者的代码审查清单
    【知乎】一句话答案收录集,一句足矣
    C# string和byte[]的转换
    WCF 有零个操作;协定必须至少有一个操作
    WPF中动态改变控件显示位置
    转 将iPhone和Android手机屏幕投影仪投影显示
    转 MySQL数据库监控软件lepus使用问题以及解决办法
    转 Shell中的IFS解惑
  • 原文地址:https://www.cnblogs.com/xiaofeng91/p/13207642.html
Copyright © 2020-2023  润新知