如何使 cdrecord 不间断地使用系统资源?

如何使 cdrecord 不间断地使用系统资源?

我想使用 cdrecord 将 30 首 mp3 歌曲刻录到 CD-R 上。但我想同时使用笔记本电脑做其他事情(例如使用 Kate 编辑器和互联网)。

然而,我读到,如果激光正在写入 CD,并且该过程被中断,则写入会被破坏。

我的问题:

那么如何才能让 cdrecord 和 CD 刻录机不间断地使用系统资源,同时仍然允许我在系统上执行其他操作呢?

答案1

对此的常见答案是关注“良好”的cdrecord过程。这告诉内核“在这里给这个进程比正常情况更高(或更低)的资源优先级”——高多少(或低多少)取决于你给它的nice值。从man nice

SYNOPSIS
   nice [OPTION] [COMMAND [ARG]...]

DESCRIPTION
   Run  COMMAND  with an adjusted niceness, which affects process schedul‐
   ing.  With no COMMAND, print the  current  niceness.   Niceness  values
   range  from  -20 (most favorable to the process) to 19 (least favorable
   to the process).

如果您的cdrecord进程已经在运行,您可以使用该renice命令以相同的方式调整它的nice值 - 请参阅man renice参考资料 。

答案2

如果cdrecord正确安装或根据需要由 root 调用,cdrecord则始终将其自身置于最高实时优先级并锁定内存。

cdrecord为写作提供了最好的条件。

不幸的是你没有提到操作系统,所以我只能给出一般建议。

  • cdrecord始终需要特殊的系统权限才能将任何 SCSI 命令发送到任何 SCSI 设备。

  • 要在普通 UNIX 系统上获得特殊的系统权限,您可以安装cdrecordsuid root 以赋予其所有可用权限。

  • 在 Solaris 上,您可以通过在数据库cdrecord中创建适当的条目来准确授予所需的细粒度权限。pfexec/etc/security

  • 在最新的 Linux 上,您可以使用该命令授予适当的细粒度功能setcap

例如,如果您在 Linux 上运行非特权 cdrecord,您将得到以下结果:

cdrecord -scanbus
Cdrecord-ProDVD-ProBD-Clone 3.02a10 2021/07/23 (x86_64-unknown-linux-gnu) Copyright (C) 1995-2019 Joerg Schilling
cdrecord: Insufficient 'file read' privileges. You will not be able to open all needed devices.
cdrecord: Insufficient 'file write' privileges. You will not be able to open all needed devices.
cdrecord: Insufficient 'device' privileges. You may not be able to send all needed SCSI commands, this my cause various unexplainable problems.
cdrecord: Insufficient 'memlock' privileges. You may get buffer underruns.
cdrecord: Insufficient 'priocntl' privileges. You may get buffer underruns.
cdrecord: Insufficient 'network' privileges. You will not be able to do remote SCSI.
cdrecord: Keine Berechtigung. Cannot open '/dev/sg0'. Cannot open or use SCSI driver.
cdrecord: For possible targets try 'cdrecord -scanbus'. Make sure you are root.
cdrecord: For possible transport specifiers try 'cdrecord dev=help'.

它会提醒您使用所需的权限运行 cdrecord。

因此,只需使用最近的内容cdrecord,它就会为您做正确的事情。

相关内容