我一直在得到一些关于如何找出我的串行端口繁忙的建议。具体来说,当我尝试启动 gammu-smsd 时,它拒绝在 /dev/ttyS0 上启动,因为它说端口正忙:
sudo /etc/init.d/gammu-smsd start
Sep 30 16:16:51 porkypig gammu-smsd[25355]: Starting phone communication...
Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Gammu - 1.26.1 built 21:46:06 Nov 24 2009 using GCC 4.4]
Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Connection - "at115200"]
Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Connection index - 0]
Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Model type - ""]
Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Device - "/dev/ttyS0"]
Sep 30 16:16:51 porkypig gammu-smsd[25355]: gammu: [Runing on - …
Run Code Online (Sandbox Code Playgroud) 我如何获得以下列表:
inotify
,以及我问是因为我发现syncthing
'sinotify
手表阻止我的磁盘被卸载。
如下所示,没有任何内容出现在lsof
或fuser
列表中。
我猜对了syncthing
......如果磁盘因以下原因无法卸载,我该如何消除未来的猜测inotify
?
# umount /media/backup
umount: /media/backup: target is busy.
# lsof +f -- /media/backup/
# echo $?
1
# fuser -vmM /media/backup/
USER PID ACCESS COMMAND
/media/backup: root kernel mount /media/backup
# systemctl stop syncthing@ravi
# umount /media/backup
# echo $?
0
Run Code Online (Sandbox Code Playgroud) 这是一个假设性的问题,而不是我目前遇到的问题。
你如何检测哪个进程现在或过去使用了一个文件?
找出哪个进程正在访问filename
,lsof filename
或fuser filename
将完成工作。但是,如果想知道filename
过去 24 小时内访问了哪些进程怎么办?
人们可以摆脱这个丑陋的 (*) hack
while true; do fuser filename; sleep 1; done
Run Code Online (Sandbox Code Playgroud)
让它在另一个学期运行 24 小时。但实际上有没有更好的系统,而不建立一个完整的审计框架?
(*) 更不用说fuser
如果不到 1 秒可能无法检测到访问...
我正在一台 Linux(Scientific Linux CERN SLC 版本 6.9 (Carbon))机器上工作,我无法在该机器上安装程序并且lsof
或fuser
命令不可用。
我正在尝试删除这台机器上的 NFS 点文件,但我一直收到Device or resource busy
错误消息,所以我想找出哪个进程(我怀疑它可能是我以前开始使用的进程nohup
)仍然具有该文件的文件描述符。
我怎样才能做到这一点?
如果一个进程运行并退出它返回一个非零状态(我个人更喜欢术语返回代码);甚至零状态我知道该值在那里(主要是因为我已经完成了 C++ 编程并且我知道你可以在你的main()
方法结束时返回一个值......但也因为如果我运行类似的东西:
fuser -s ./myfile.txt && echo "a process is accessing your file
”
我知道echo
如果从fuser
进程返回的状态值是0
,则唯一打印,如果不是,echo
则一起跳过,因为:
“如果没有访问任何指定文件或发生致命错误,fuser 将返回一个非零返回码。”
现在我如何显示这个返回码来知道它的价值?因为如果你正在运行fuser
使用-silent
,如在脚本,它似乎重要的是知道的返回码/状态值,所以我可以告诉大家,不被访问文件和实际致命错误之间的区别。
此外,手册页中是否有一个共同的地方记录了进程的返回代码/状态,以便我可以看到该值可能意味着什么?或者是否有一份文件对返回代码应该是什么有标准?