我有一个像下面这样的Python脚本:
#!/usr/bin/env python
print("Start")
sql = get_sql_from_file(...)
# The following function takes a long time to run
execute_oracle_driver(sql)
print("Finished")
我以以下方式执行:
(my-env) $ time nohup python script.py &
然后我检查是否有任何初始输出,但没有:
(my-env) $ cat nohup.out
(my-env) $
我至少希望在几秒钟后看到“开始”。即使等了几分钟,然后杀了它,我也没有输出。如果可能,我该如何解决这个问题?
默认情况下,输出是缓冲的,因此您需要确保输出是刷新的;否则,在程序结束之前,nohup.out
中不会看到任何输出。一种方法如下:
print("Start", flush=True)
问题内容: 我已经搜索过,但我只能找到有关另一种方式的问题:将stdin写入文件:) 有没有一种快速简便的方法将文件内容转储到stdout? 问题答案: 当然。假设您有一个字符串,文件名为,下面的技巧就可以了。
问题内容: 我已经将内存中的Postscript代码/数据(?)(在Java Tomcat webapp中)直接发送到联网的PS打印机。有没有一种简单的方法(即只是弹出一个端口并发送文本)来打印此内容,而绕过所有特定于O / S的驱动程序和内容(并希望甚至不需要额外的jar)?示例代码的链接显示了如何执行此操作? 谢谢戴夫 问题答案: 在目标打印机的LPR端口上打开一个TCP套接字。 发送您的数据
问题内容: 我有一个Python脚本正在使用我的雇主提供的某些封闭式Python函数(即我无法编辑这些函数)。当我调用这些函数时,它们会将输出打印到我想抑制的Linux终端上。我试过通过重定向标准输出/标准错误; 但这无法捕获输出。我认为我通过Python调用的函数(上面的rogue_function())实际上是经过编译的C代码的包装程序,它们实际上是在进行打印。 有谁知道一种方法可以对某个函数
问题内容: 我的程序中有多个goroutine,每个goroutine都进行调用而没有任何显式同步。这样安全吗(即,每行将单独出现而不会破坏数据),还是我需要创建另一个带有同步的goroutine来专门处理打印? 问题答案: 不,即使您有时可能没有发现任何麻烦,也不安全。IIRC,fmt软件包试图处于安全状态,因此可能会发生某种混合,但希望不会导致进程崩溃。 这是一个更通用的Go文档规则的实例:除
问题内容: 作为一个愚蠢的基本线程练习,我一直在尝试在golang中实现睡眠理发师问题。使用通道,这应该很容易,但是我遇到了heisenbug。也就是说,当我尝试诊断时,问题消失了! 考虑以下。该函数将整数(或“客户”)压入通道。阅读频道来剪掉“顾客”的头发。如果我在函数中插入一条语句,程序将按预期运行。否则,切勿剪任何人的头发。 知道发生什么了吗? 问题答案: 问题是Go的调度程序的实现方式。当
问题内容: 我正在运行测试,发现直到我按住C键终止程序后,该文件才真正被写入。谁能解释为什么会这样? 我希望它可以同时写入,因此可以在过程中间读取文件。 问题答案: 写到磁盘的速度很慢,因此许多程序将写操作存储到大块中,然后一次写一次。这称为 缓冲 ,当您打开文件时,Python会自动进行 缓冲 。 写入文件时,实际上是在写入内存中的“缓冲区”。填满后,Python会自动将其写入磁盘。您可以通过以