如何在脚本中确定当前是否正在由另一个进程写入文件?

彼得·奥

我对bash脚本非常陌生,因此我可能会拨错树,但这是我目前的情况:

在脚本中,我开始sofficeodt转换pdf

似乎soffice使自己脱离了脚本的过程,并且徘徊去做自己的事情。GUI应用程序倾向于这样做...

但是,我需要等到新pdf完全写入后,因为我的下一步涉及处理该新pdf

(据我所知)我无法使用Soffice的进程ID,因为在脚本开始之前它可能已经是一个正在运行的进程。对于其他不相关的文档/演示文稿/电子表格,常规的GUI活动可能已经打开办公室

对我而言,问题的症结在于,在我继续之前,必须完成pdf的撰写...

有什么方法可以确定何时不再以“写入”模式向另一个进程打开文件...

斯蒂法诺·帕拉佐(Stefano Palazzo)

您可以lsof | grep /absolute/path/to/file.txt用来查看文件是否打开。如果文件已打开,则此命令将返回状态0,否则将返回256(1)。

请注意,由于通常会随时打开许多文件,因此此命令将花费一秒钟。

lsof -c gedit例如,您还可以使用来查看已打开gedit的文件。将输出限制为一个进程将使执行时间减少到几乎没有。

这是要等待的脚本:

#!/bin/bash

while :
do
    if ! [[ `lsof -c python3.2 | grep test.py` ]]
    then
        break
    fi
    sleep 0.5
done
echo "done"

在进程“ pyhton3.2”打开文件“ test.py”的同时运行。文件关闭后,它将继续执行“ echo done”并退出。

我在其中放置了“ sleep 0.5”,这样循环就不会严重占用CPU了。否则,它将使用100%cpu。

奖金似乎有一种简单的方法可以将odt转换为pdf:

感谢OOo论坛上的scls19fr提供了这个可爱的技巧。您可以使用以下命令从命令行将OpenOffice Writer文件转换为PDF:unoconv -f pdf input.odt要获取unoconv,只需sudo apt-get install unoconv在终端上运行即可(rhyshale.wordpress.com的rhyshale)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在脚本中确定当前是否正在由另一个进程写入文件?

来自分类Dev

当另一个进程正在使用std :: fstream写入文件时从文件中读取

来自分类Dev

如何读取另一个进程正在写入的文件

来自分类Dev

文件正在由C#中的另一个进程使用

来自分类Dev

如何在Groovy中读取(prinln)文件,该文件是另一个进程写入的文件

来自分类Dev

如何在由另一个shell脚本启动的shell脚本中获取`pwd`

来自分类Dev

C#Excel Interop错误:该文件正在由另一个进程使用

来自分类Dev

Python,WindowsError:[错误32],文件正在由另一个进程使用

来自分类Dev

Powershell测试路径然后删除项目,但文件正在由另一个进程使用

来自分类Dev

文件正在由另一个进程使用,但是canRead()返回true

来自分类Dev

TransmitFile文件正在由另一个进程使用

来自分类Dev

在另一个进程正在写入时清空文件

来自分类Dev

如何在另一个文件目录中的另一个脚本中导入 Python 文件?

来自分类Dev

如何将当前正在运行的脚本复制到另一个文件夹

来自分类Dev

如何确定当前项目是否是ListView部分的最后一个项目

来自分类Dev

释放另一个进程正在使用的文件

来自分类Dev

打开另一个进程正在使用的文件

来自分类Dev

从正在运行的bash脚本中确定当前进程的优先级

来自分类Dev

如何在C#中结束该函数的另一个进程使用的文件?

来自分类Dev

在另一个进程将行写入文件之前,应该如何阻止一个进程?

来自分类Dev

如何确定一个单元与应用脚本中的另一个单元合并

来自分类Dev

如何在同一Shell脚本中将一个进程的PID传递给另一个进程?

来自分类Dev

C#:如何读取另一个进程正在使用的文件

来自分类Dev

Windows 服务中的另一个进程正在使用的文件

来自分类Dev

SSIS-无法读取XML-该文件正在由另一个进程使用

来自分类Dev

file_put_contents将数据附加到另一个进程正在写入的文件上

来自分类Dev

如何确定一个集合是否包含Python中的另一个集合

来自分类Dev

如何从另一个批处理脚本中杀死正在执行的批处理脚本?

来自分类Dev

如何从另一个脚本中杀死正在运行的脚本?

Related 相关文章

  1. 1

    如何在脚本中确定当前是否正在由另一个进程写入文件?

  2. 2

    当另一个进程正在使用std :: fstream写入文件时从文件中读取

  3. 3

    如何读取另一个进程正在写入的文件

  4. 4

    文件正在由C#中的另一个进程使用

  5. 5

    如何在Groovy中读取(prinln)文件,该文件是另一个进程写入的文件

  6. 6

    如何在由另一个shell脚本启动的shell脚本中获取`pwd`

  7. 7

    C#Excel Interop错误:该文件正在由另一个进程使用

  8. 8

    Python,WindowsError:[错误32],文件正在由另一个进程使用

  9. 9

    Powershell测试路径然后删除项目,但文件正在由另一个进程使用

  10. 10

    文件正在由另一个进程使用,但是canRead()返回true

  11. 11

    TransmitFile文件正在由另一个进程使用

  12. 12

    在另一个进程正在写入时清空文件

  13. 13

    如何在另一个文件目录中的另一个脚本中导入 Python 文件?

  14. 14

    如何将当前正在运行的脚本复制到另一个文件夹

  15. 15

    如何确定当前项目是否是ListView部分的最后一个项目

  16. 16

    释放另一个进程正在使用的文件

  17. 17

    打开另一个进程正在使用的文件

  18. 18

    从正在运行的bash脚本中确定当前进程的优先级

  19. 19

    如何在C#中结束该函数的另一个进程使用的文件?

  20. 20

    在另一个进程将行写入文件之前,应该如何阻止一个进程?

  21. 21

    如何确定一个单元与应用脚本中的另一个单元合并

  22. 22

    如何在同一Shell脚本中将一个进程的PID传递给另一个进程?

  23. 23

    C#:如何读取另一个进程正在使用的文件

  24. 24

    Windows 服务中的另一个进程正在使用的文件

  25. 25

    SSIS-无法读取XML-该文件正在由另一个进程使用

  26. 26

    file_put_contents将数据附加到另一个进程正在写入的文件上

  27. 27

    如何确定一个集合是否包含Python中的另一个集合

  28. 28

    如何从另一个批处理脚本中杀死正在执行的批处理脚本?

  29. 29

    如何从另一个脚本中杀死正在运行的脚本?

热门标签

归档