我想使用 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 系统上获得特殊的系统权限,您可以安装
cdrecord
suid 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
,它就会为您做正确的事情。