今天在linux上跑模型,但需要一个脚本(作用:检测文件是否存在,如果存在执行某种操作)一直运行,一旦检测到文件生成,就执行脚本函数。

就在网上查阅资料。

perl -w hello.pl &

只需要在末尾加个 ‘&’; 这个脚本进程就常驻内存,除非 ps -a 找到进程号,然后执行 kill 进程号 命令,就可把进程终止,脚本运行停止。

觉得 ‘&’; ,这么简单的一个符号,用处尽然这么大。


你在学习linux或者是使用linux时,遇到过哪些实用但很简单的linux命令,欢迎补充。

谢谢你~~

3 2 收藏


直接登录
最新评论
  • 陈小文浩   2015/11/03

    “除非 ps -a 找到进程号”?
    用 `jobs’ 就可以查看到用`&’调到后台运行的任务、任务号、运行状态。
    `fg %i’ – 把任务i调回前台执行
    `kill %i’ – 杀掉任务i

    • yoummg 码农 2015/11/03

      我试了下 jobs 没有任何提示!

      • fu昀 软件工程师 2015/11/03

        1.在同一个shell里运行的吗?
        2.shell退出会导致背景job退出

        • yoummg 码农 2015/11/04

          我是通过远程xshell,然后用 &命令让脚本后台运行,然后就关掉xshell,页面访问服务,可以调用脚本的。

          • fu昀 软件工程师 2015/11/04

            那是你的脚本启动了其他的服务吧,shell退出后脚本退出了,服务还运行着

            • yoummg 码农 2015/11/04

              没有,我的脚本功能:检测文本是否存在,存在执行另一个脚本(end)。主脚本一直在运行,没有终止。

              • fu昀 软件工程师 2015/11/05

                抱歉,我自己试了一下的确像你说的那样,在shell退出后脚本仍然会继续运行。shell退出是只是向子进程发送了SIGHUP信号,子进程收到这个信号后可以不退出。但是再次登录时使用jobs就无法查出后台进程了

                • fu昀 软件工程师 2015/11/05

                  单纯使用&并不保险,有可能进程收到SIGHUP信号后就退出了(storm的守护进程就是这样的),保险的做法是 nohup 你的命令 & 这样shell退出后你的进程就肯定不会退出了。nohup会屏蔽掉SIGHUP信号

  • Japhasiac 测试 2015/11/07

    xxxxxxxxxxx | column -t,前面命令的输出自动排表格

  • 青檬的菜鸟   2015/12/14

    alias l=’ls -lah’

  • mikzhang   2015/12/24

    ssh远程拷贝文件
    scp -rP 端口号 用户名@IP:/源目录 目标目录
    比如
    scp -rP 2222 root@192.168.0.xx:/home/file1.sh ./
    就是将192.168.0.x机器上/home目录下的file1.sh文件拷贝到当前机器的当前目录下

  • 古手梨花 巫女 2015/12/25

    :(){ :|:& };: # 好孩子不要执行

  • 吴遥   01/28

    查找目录dir下出现字符串str的文件:

    find /dir |xargs grep str

    top指定程序:

    top ps -eo pid,fname |grep "program"|awk '{print "-p" $1}'| xargs