启动后,使用命令行重定向进程的STDERRSTDOUT?

启动后,使用命令行重定向进程的STDERRSTDOUT?,第1张

启动后,使用命令行重定向进程的STDERR / STDOUT?

除非关闭并重新打开您的tty(即注销并重新登录,这可能还会终止该过程中的某些后台进程),否则您只剩下一个选择:

  • 使用gdb附加到有问题的进程,然后运行:
    • p dup2(open(“ / dev / null”,0),1)
    • p dup2(open(“ / dev / null”,0),2)
    • detach
    • quit

例如:

$ tail -f /var/log/lastlog &[1] 5636$ ls -l /proc/5636/fdtotal 0lrwx------ 1 myuser myuser 64 Feb 27 07:36 0 -> /dev/pts/0lrwx------ 1 myuser myuser 64 Feb 27 07:36 1 -> /dev/pts/0lrwx------ 1 myuser myuser 64 Feb 27 07:36 2 -> /dev/pts/0lr-x------ 1 myuser myuser 64 Feb 27 07:36 3 -> /var/log/lastlog$ gdb -p 5636GNU gdb 6.8-debianCopyright (C) 2008 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.  Type "show copying"and "show warranty" for details.This GDB was configured as "x86_64-linux-gnu".Attaching to process 5636Reading symbols from /usr/bin/tail...(no debugging symbols found)...done.Reading symbols from /lib/librt.so.1...(no debugging symbols found)...done.Loaded symbols for /lib/librt.so.1Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.Loaded symbols for /lib/libc.so.6Reading symbols from /lib/libpthread.so.0...(no debugging symbols found)...done.[Thread debugging using libthread_db enabled][New Thread 0x7f3c8f5a66e0 (LWP 5636)]Loaded symbols for /lib/libpthread.so.0Reading symbols from /lib/ld-linux-x86-64.so.2...(no debugging symbols found)...done.Loaded symbols for /lib64/ld-linux-x86-64.so.2(no debugging symbols found)0x00007f3c8eec7b50 in nanosleep () from /lib/libc.so.6(gdb) p dup2(open("/dev/null",0),1)[Switching to Thread 0x7f3c8f5a66e0 (LWP 5636)] = 1(gdb) p dup2(open("/dev/null",0),2) = 2(gdb) detachDetaching from program: /usr/bin/tail, process 5636(gdb) quit$ ls -l /proc/5636/fdtotal 0lrwx------ 1 myuser myuser 64 Feb 27 07:36 0 -> /dev/pts/0lrwx------ 1 myuser myuser 64 Feb 27 07:36 1 -> /dev/nulllrwx------ 1 myuser myuser 64 Feb 27 07:36 2 -> /dev/nulllr-x------ 1 myuser myuser 64 Feb 27 07:36 3 -> /var/log/lastloglr-x------ 1 myuser myuser 64 Feb 27 07:36 4 -> /dev/nulllr-x------ 1 myuser myuser 64 Feb 27 07:36 5 -> /dev/null

您还可以考虑:

  • 使用
    screen
    ; 屏幕提供了几个虚拟TTY,您可以在不打开新的SSH / telnet / etc,会话的情况下进行切换
  • 使用
    nohup
    ; 这样,您就可以关闭并重新打开会话,而不会丢失…进程中的任何后台进程。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4904292.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存