标签: stderr

Cronjob - 如何输出 stdout,并忽略 stderr

是否可以输出stdout到文件,但忽略stderr

我有一个 Python 脚本,用于sys.stderr.write(error)将错误输出到stderr. 对于这个特定的脚本,我想忽略这些。这怎么可能?

这是 crontab 中的当前条目:

* * * * * /Users/me/bin/scrape-headlines /Users/me/proxies.txt >> /Users/me/headlines.txt 2>&1
Run Code Online (Sandbox Code Playgroud)

scrape-headlines是一个调用Python脚本的bash脚本。

python bash cron stdout stderr

2
推荐指数
1
解决办法
1204
查看次数

写入“stderr”时冻结

在我的程序中,在这种情况下写入 stderr 时有时会冻结:

  1. 程序启动(例如从终端)
  2. 程序分叉两次并使用 execvp 以不同的参数启动每个进程(原始文件是从 读取的/proc/self/exe
  3. 第一个启动的程序退出。
  4. 现在两个fork进程仍在运行
  5. 关闭终端第一个程序已启动
  6. 尝试使用fprintf写入来stderr工作,在某些时候我的程序会完全锁定。调试器告诉我它的 fprintf。

这里发生了什么?我已经尝试过的是,一旦没有人再监听管道,就可以防止程序崩溃SIG_IGN。但现在我陷入了困境(无论有没有SIGPIPE冻结,冻结的行为都是一样的)。SIG_IGN

任何帮助表示赞赏。

c linux freeze stderr

2
推荐指数
1
解决办法
1192
查看次数

在 bash 中静默 docker rm 命令

我尝试过docker container rm container-name > /dev/null,但这仍然打印Error: No such container: container-name。我正在尝试在 bash 脚本中消除此错误。

bash stdout stderr io-redirection docker

2
推荐指数
1
解决办法
4851
查看次数

process.stderr.on('data') 和 process.on('error') 有什么区别?

我正在节点应用程序中为子进程设置错误处理,我想知道这两个选项:

    childProcess.on('error', err => {
        // omitted
    });

    // do we need both this and the preceding handler?
    childProcess.stderr.on('data', data => {
        // omitted
    });
Run Code Online (Sandbox Code Playgroud)

有什么不同?两者都需要吗?

error-handling stderr node.js

2
推荐指数
1
解决办法
2340
查看次数

如何重定向 stdout 和 stderr 而不污染 PowerShell 错误输出

问题:

我试图通过 PowerShell 运行命令并捕获其 stdout 和 stderr而不将它们打印在屏幕上(命令非常嘈杂并污染控制台)。

我想捕获变量中的 stdout 和 stderr,然后在找到特定字符串时抛出异常。

我的逻辑似乎正常工作,我可以在我期望的时候使 cmdlet 失败/通过,但是输出与我的期望不匹配,而不是返回我指定的错误消息,我得到的是我认为是 stderr 的内容命令代替?

我的代码:

(为了便于阅读而进行了简化)
第一个 cmdlet:

function Test-Validation
{
    [CmdletBinding()]
    param(
        [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true, Position = 0)]
        [Array]
        $ValidExitCodes = @(0),

        [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true, Position = 1)]
        [bool]
        $FailOnWarning = $true
    )
    $Validation = . pdk validate 2>&1

    if ($LASTEXITCODE -notin $ValidExitCodes)
    {
        throw "Module validation has failed. Exit code: $($LASTEXITCODE)."
    }
    $Warnings = $Validation -match 'pdk \(WARNING\)' …
Run Code Online (Sandbox Code Playgroud)

error-handling powershell stderr

2
推荐指数
1
解决办法
1902
查看次数

在 NodeJs 中使用 child_process.execSync 进行错误处理

这是我的 NodeJs 片段:

const {execSync} = require('child_process');
  testoutput = execSync('make test');
Run Code Online (Sandbox Code Playgroud)

如果 make 进程完全退出,我将从execSync 进程获取stdout作为testoutput变量的输出。但是,如果make 测试过程遇到stderr错误,那么我会在 NodeJs 中收到错误。

如果 make 进程不退出,如何将stderr消息存储到输出变量testoutput;如果进程以stdout 输出正常退出,则如何将stdout存储到变量testoutput中。

stdout stderr child-process node.js

2
推荐指数
1
解决办法
3854
查看次数

如何将Python的getpass()重定向到stderr?

我正在尝试编写一个程序,将其提示打印为标准错误,并将其输出打印为标准输出,以便以后可以操纵输出。

我对python有点陌生,但是getpass()的文档显示我应该能够选择一个流:

getpass.getpass([prompt[, stream]])
Run Code Online (Sandbox Code Playgroud)

我已经尝试过各种参数来获取getpass,但似乎无法在stderr中进行提示。任何帮助,将不胜感激,谢谢。

>>> password = getpass.getpass("Password", sys.stderr)
TypeError: unix_getpass() takes at most 1 argument (2 given)
Run Code Online (Sandbox Code Playgroud)

python stderr

1
推荐指数
1
解决办法
672
查看次数

在QTextEdit小部件中复制stdout,stderr

我几天来一直在使用PySide程序遇到困难.我不认为这个问题难以置信,因为那里有答案.我遇到的问题似乎都不适合我.

我希望'监听'文件对象stdout和stderr,并在我的PySide程序运行时将内容输出到QText Edit小部件.现在,我已经意识到这个问题(或者类似的东西)之前已经被问过了,但就像我说的那样,由于某种原因无法让它为我工作,而其他大多数解决方案都基于我能做到的那个问题.工作,所以对我来说这几天非常令人沮丧.这个解决方案(OutLog)包含在我下面的代码片段中,以防你们其中一个人可以看到我的拙劣实现.

要记住的事情:

1我在Windows 7上做这个(duuuh,da,da,duh)

2我正在使用eclipse并在IDE中运行它(duh,da,da,duh,DUUUUH:如果建议适用于命令行或IDE,那将非常方便)

3我真的只想在程序运行时将stdout和stderr的输出复制到小部件.对于这种情况,逐行发生将是一个梦想,但即使它在一个循环结束时出现作为一个块或其他东西,这将是晶圆厂.

4哦,关于OutLog,有人可以告诉我,如果在init中将self.out设置为'None' ,这个类实际上可以工作吗?我的意思是,self.out 总是一个NoneType对象,对吧???

任何帮助将不胜感激,即使它只是指向我可以找到更多信息的地方.我一直在努力建立自己的解决方案(我有点像一个虐待狂),但我发现很难找到关于这些对象如何工作的相关信息.

无论如何,抱怨过来.这是我的代码:

#!/usr/bin/env python
import sys
import logging
import system_utilities

log = logging.getLogger()
log.setLevel("DEBUG")
log.addHandler(system_utilities.SystemLogger())

import matplotlib
matplotlib.use("Qt4Agg")
matplotlib.rcParams["backend.qt4"] = "PySide"
import subprocess
import plot_widget

from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure

from PySide import QtCore, QtGui


class MainWindow(QtGui.QMainWindow):
    """This is the main window class and displays the primary UI when launched.
    Inherits from QMainWindow.
    """

    def __init__(self):
        """Init function. 
        """
        super(MainWindow, self).__init__() …
Run Code Online (Sandbox Code Playgroud)

stdout pyqt stderr pyside python-2.7

1
推荐指数
1
解决办法
3082
查看次数

如何在stthon中将std.error写入文件,但将std.out写入控制台?

在这个例子中,我想 write在控制台(std.out)try block; 但是当抛出异常时except block,我想编写std.err重定向到日志的异常内容file.

我可以file打开一个except块然后write打开它.但是需要为每个try-catch块完成,所以如果有re-directing这些异常的替代方法std.err并记录std.error.

>>> try:
...   print "hello world"
...   1/0
... except ZeroDivisionError as e:
...   print "exception"
... 
hello world
exception
Run Code Online (Sandbox Code Playgroud)

python exception try-catch stderr

1
推荐指数
1
解决办法
235
查看次数

如何删除/禁用gcloud CLI命令的输出消息

例如:

gcloud compute disks create --size=10GB my-data-disk
Run Code Online (Sandbox Code Playgroud)

会印两件事:

  1. 警告:

    WARNING: You have selected a disk size of under [200GB]. This may result in poor I/O performance. For more information, see: https://developers.google.com/compute/docs/disks/persistent-disks#pdperformance.
    
    Run Code Online (Sandbox Code Playgroud)

    这可以通过以下方式消除 --verbosity error

  2. 状态:

    Created [https://www.googleapis.com/compute/v1/projects/sigma-project-12345/zones/europe-west1-c/disks/my-data-disk].
    NAME          ZONE           SIZE_GB TYPE        STATUS
    my-data-disk europe-west1-c 10      pd-standard READY
    
    Run Code Online (Sandbox Code Playgroud)

    这个我不知道如何禁用,然后重定向stderr,当然我不想要因为我仍然要看是否发生错误.

-q论点不会删除它.

command-line-interface stderr command-line-arguments gcloud gcloud-cli

1
推荐指数
1
解决办法
1363
查看次数