尽管大多数AIX管理员都知道如何设置打印队列并通过SMIT或常规打印命令来管理打印,但是在UNIX系统上进行打印还有更多。 本文介绍了AIX的后台处理程序后端程序,例如piomkpqpiolsvplsvirprtchvirprtrmvirprt

什么是虚拟打印机?

虚拟打印机只是一个功能类似于打印机驱动程序的软件。 但是,虚拟打印机不必连接到实际打印机。 听起来令人困惑? 将虚拟打印机视为标准输出的另一种形式。 如果要创建可移植文档格式(PDF),通常可以打开文本文档并将其另存为PDF。 这使用一种虚拟打印机的形式-基本将文本文档打印为可以保存到文件中并在某种程度上不受其他作者保护的格式。 您可以使用虚拟打印机从文档,传真文档创建图像,或将文档发送到队列以针对特定类型的打印机进行格式化。 后者是本文讨论的虚拟打印机的形式。

我找不到文件! 他们在哪?

在深入了解虚拟打印机命令之前,您需要了解本文讨论的文件的位置。 本文引用的大多数命令都不在用户的典型PATH环境变量中。 有两个简单的解决方案可以解决这个小问题:

  • 始终键入可执行文件的完整路径。
  • 将虚拟打印机命令的路径添加到用户的PATH。

如果要定期使用这些命令,建议将其添加到用户的PATH中。 通常,用户的PATH最初来自AIX中的/ etc / environment,然后在登录时或重新获得〜/ .profile时,用户的$ {HOME} /。profile用于本地环境变量更新。 考虑到打印机的管理通常是由root用户管理的,因此明智的做法是修改root的本地.profile文件而不是影响所有用户。 如果〜root / .profile不存在,请随时创建文件。

首先,对刚接触PATH变量的用户要当心:在将新目录添加到PATH环境变量中时,通常明智的做法是将新目录放置在当前PATH值的末尾而不是开头。 这可能是给经验丰富的UNIX用户的,但是对于新手来说,如果不遵循,可能会导致真正的问题。 如果您不熟悉PATH变量的工作方式,请按以下说明进行操作。 执行命令时,外壳程序必须读取用户的PATH环境变量以找到可执行文件。 从左到右依次读取PATH,并用冒号分隔。 如果用户的PATH设置为A:B:C:D ,则外壳程序首先尝试在目录A中查找该命令。如果在该目录中未找到该命令,外壳程序将继续查找目录B,依此类推。

这是问题所在:在此示例中,用户的PATH最初设置为/ usr / bin:/ etc:/ usr / sbin。 如果命令有多个版本(例如/usr/bin/foo/usr/local/bin/foo ),并且用户仅输入命令,而不输入完全限定的文件名,则是PATH中找到的第一个实例可变顺序尝试执行(在此示例中为/usr/bin/foo )。 现在说用户想要将/usr/local/bin添加到PATH中,以便能够轻松找到并执行/usr/local/bin/bar 。 但是,用户将新目录添加到PATH的开头(即PATH=/usr/local/bin:${PATH} )。 bar执行效果很好,但是现在用户在执行foo时会得到意外的结果。 这是因为现在正在执行/usr/local/bin/foo而不是原始的/usr/bin/foo 。 实现用户目标的正确方法是PATH=${PATH}:/usr/local/bin

在典型的AIX系统上,大多数虚拟打印机命令位于/ usr / lib / lpd / pio / etc和/ usr / sbin目录中,如清单1所示。 因此,您可以将PATH更新为PATH=${PATH}:/usr/sbin:/usr/lib/lpd/pio/etc

清单1.虚拟打印机队列命令的位置
# find /usr \( -name piomkpq -o -name piolsvp -o -name lsvirprt -o -name chvirprt -o
-name rmvirprt \) -ls 187195      36 -r-xr-s---   1 root  printq  34894 Sep 16 2002 /usr/sbin/chvirprt187491      48 -r-xr-xr-x   1 root   printq  47474 Sep 16 2002 /usr/sbin/lsvirprt 187763      44 -r-xr-s---   1 root   printq  41474 Sep 16 2002 /usr/sbin/rmvirprt98653       40 -r-xr-xr-x   1 bin   bin     40522 May 26 2006 /usr/lib/lpd/pio/etc/piolsvp 98706       36 -r-sr-x---   1 root   printq     32782 Sep 16 2002 /usr/lib/lpd/pio/etc/piomkpq

创建虚拟打印机队列

通过命令行在AIX中创建打印队列非常容易。 通过使用piomkpq命令,您可以快速创建新的打印队列并将打印机添加到现有队列。

表1提供了一些在执行piomkpq时可以使用的开关。 有关开关的完整列表,请查看man piomkpq

表1. piomkpq开关
开关 描述
-A <attachment> 打印机应如何连接到队列? 有效的附件类型为:

  • local :打印机已连接到本地主机。
  • remote :打印机已连接到远程主机。
  • xstation :打印机已连接到Xstation。
  • ascii :打印机连接到美国信息交换标准码(ASCII)终端。
  • hpJetDirect :打印机是网络打印机。
  • file :打印机是/ dev中的文件。
  • ibmNetPrinter :打印机是IBM网络打印机。
  • ibmNetColor :打印机是IBM网络彩色打印机。
  • other :打印机由用户定义。
-D <data stream> 此打印队列是什么类型的数据流? 有效的数据流为ascchtepsglkjipclprops
-Q <queue name> 使用打印队列<queue name>因为它已经存在。
注意:不能同时使用-Q-q开关,因为不能同时使用现有队列和创建新队列。
-a <attribute=value> 此队列应设置哪些属性? 可用的属性是interfaceptopauthconfigspeedparitybpcstopsxondtr ,和tbc
-d<device> 设备的名称是什么(例如lp0,tty2,fileA)?
-p <printer type> 这是哪种打印机? 您可以在/ usr / lib / lpd / pio / predef下的AIX上找到有效打印机的列表。
-q <queue name> 创建一个新的打印队列,并将其命名为<queue name>
注意:不能同时使用-Q-q开关,因为不能同时使用现有队列和创建新队列。
-w <port> 队列应使用哪个端口?
-s <type> w 打印机是否通过并行,rs232或rs422连接?

通常,用户为附件类型指定localasciifile 。 如果您的AIX系统具有其他附件类型,则可以在/ usr / lib / lpd / pio / etc中找到附件类型配置文件(扩展名为.attach),如清单2所示。

清单2.附件类型配置文件的位置
# ls -l /usr/lib/lpd/pio/etc/*.attach-r--r--r--  1 root   printq     1150 Sep 13 2002 /usr/lib/lpd/pio/etc/ascii.attach
-r--r--r--  1 root   printq     1144 Sep 13 2002 /usr/lib/lpd/pio/etc/file.attach
-r--r--r--  1 root   printq     1182 Jan 17 2003 /usr/lib/lpd/pio/etc/hpJetDirect.attach
-r--r--r--  1 root   printq     1209 Jan 17 2003 /usr/lib/lpd/pio/etc/ibmNetColor.attach
-r--r--r--  1 root   printq     1203 Jan 17 2003 /usr/lib/lpd/pio/etc/ibmNetPrinter.attach
-r--r--r--  1 root   printq     1188 Sep 13 2002 /usr/lib/lpd/pio/etc/local.attach
-r--r--r--  1 root   printq     1094 Sep 13 2002 /usr/lib/lpd/pio/etc/remote.attach
-r--r--r--  1 root   printq     1201 Sep 13 2002 /usr/lib/lpd/pio/etc/xstation.attach

清单3是AIX中配置文件的示例。

清单3. AIX上的示例配置文件
# grep -vE "^#|^[[:space:]]*$" /usr/lib/lpd/pio/etc/ascii.attach # ASCII attachment description = piobe.cat,4,20;Printer Attached to ASCII Terminal add_queue = ps_makprt_prt add_printer = ps_makprt_prt seq_num = 4 submit_job = ps_qprt_fileName change_queue = ps_chpq_attachName change_filters = ps_pqfilters_ghostName remove_queue = ps_rmpq_ghostName_other

现在您已经知道基本命令,创建一个新的打印队列:

# piomkpq –A local –p ibm6252 –d lp0 –D asc –q ATC_QUEUE Added print queue 'ATC_QUEUE'.

现在,为一个名为lp0的现有IBM 6252打印机创建一个名为ASCII数据流的名为ATC_QUEUE的新本地打印队列:

# piomkpq –A local –p ibm6252 –D asc -Q ATC_QUEUE –d lp1 Added printer 'lp1' to print queue 'ATC_QUEUE'.

您看到piomkpq的第一个示例和第二个示例之间的piomkpq吗? 这很微妙但很重要。 第一个示例使用-q开关创建新的打印队列。 在第二个示例中,我使用-Q并告诉piomkpq使用名为ATC_QUEUE的现有队列。 如果您不熟悉UNIX或Linux®,那么这就是执行命令时大小写为何重要的一个完美示例。 只需将大小写从q更改为Q完全更改命令,如前面的示例所示。

为了验证打印队列并添加了适当的设备,请查看清单4所示的/ etc / qconfig。 打印机配置文件应按文件末尾lpstat中显示的顺序列出队列,因为它们是最后一次通过piomkpq添加的piomkpq而不是手动添加到/ etc / qconfig的piomkpq

清单4. / etc / qconfig的代码片段
ATC_QUEUE:device = lp0,lp1
lp0: file = /dev/lp0 header = never trailer = never access = both backend = /usr/lib/lpd/piobe
lp1: file = /dev/lp1 header = never trailer = never access = both backend = /usr/lib/lpd/piobe

列出打印机

现在您已经创建了打印队列或将打印机添加到已经存在的队列中,现在可以很好地验证该队列是否已创建并查看AIX系统上可能还存在哪些其他队列。 在AIX上列出虚拟打印机比创建虚拟打印机更为简单。 通过使用piolsvp命令,您可以查看现有的打印队列或可用的附件类型。

表2提供了执行piolsvp时可以使用的一些开关。 有关开关的完整列表,请查看man piolsvp

表2. piolsvp开关
开关 描述
-A 显示所有可用的附件类型。
-P <queue name> 选择<queue name>以执行其他打开。 仅将–P开关与piolsvp使用不会显示任何信息。
-d 显示队列设备。
-n <field> 显示配置文件中的附件名称和<field>值。 要查询的可用属性字段是submit_jobadd_queueadd_printerremove_queueprinter_connchange_queuechange_filters
-p 显示所有队列,它们的描述和位置。
-q 显示所有队列及其描述。
-v 显示所有虚拟打印机。

在谈论piomkpq ,我提到您可以手动查看附件类型配置文件,因为这些文件是ASCII文本。 如果您对所有设置都不感兴趣,而只想快速列出, piolsvp是您的命令,如清单5所示。

清单5.查看附件类型
# piolsvp –A # ATTACHMENT TYPE       DESCRIPTION local                 Printer Attached to Local Host remote                Printer Attached to Remote Host xstation              Printer Attached to Xstation ascii                 Printer Attached to ASCII Terminal hpJetDirect           Network Printer (HP JetDirect) file                  File (in /dev directory) ibmNetPrinter         IBM Network Printer ibmNetColor           IBM Network Color Printer other                 User Defined Backend

以下示例演示如何显示特定的打印队列,在这种情况下,显示打印队列ATC_HPLJ5

# piolsvp -P ATC_HPLJ5 -d# PRINTER           DESCRIPTION
hp@ATC_HPLJ5        hplj-5si (PCL)

清单6显示了如何快速查看所有已定义的打印队列,它们的位置和描述。

清单6.显示所有打印队列
# piolsvp -p# PRINT QUEUE   PRINTER     DESCRIPTION
PAC06_ps        hp@PAC06    generic (PostScript)
PAC06_pcl       hp@PAC06    generic (PCL Emulation)
ATC08_pcl       hp@ATC08    generic (PCL Emulation)
AMDC79_ps       hp@AMDC79   hplj-4000 (PostScript)
LAB125_pcl      hp@LAB125   hplj-4000 (PCL)
LAB125_ps       hp@LAB125   hplj-4000 (PostScript)
ATC_HPLJ5pcl    hp@ATC_HPLJ5 hplj-5si (PCL)
ATC_HPLJ5PS hp@ATC_HPLJ5 hplj-5si (PostScript)
ATC_QUEUE lp0 IBM 6252 Impactwriter lp1 IBM 6252 Impactwriter

以下示例在队列AMDC79_ps的附件配置中查询名为add_queue的字段。 由于队列使用的是hpJetDirect的附件类型, hpJetDirect将搜索文件/usr/lib/lpd/pio/etc/hpJetDirect.attach。

# piolsvp -P qaljlab1_pcl -nadd_queue
hp@AMDC79_ps        hpJetDirect         ps_makhp_prt

为简化起见,以上查询基本上是在格式化以下grep语句:

# grep "add_queue" /usr/lib/lpd/pio/etc/hpJetDirect.attach
add_queue      =        ps_makhp_prt

lpstat命令是大多数UNIX用户所熟悉的。 这是大多数UNIX和Linux系统上的标准命令,它显示一个或多个打印机的状态,如清单7所示。

清单7.使用lpstat查看打印队列
# lpstat -W
Queue           Dev             Status      Job Files         User   PP   %   Blks Cp Rnk
--------------- -------------- ----------- ----------------- ------- ---- -- ----- -- ---
PAC06_ps        hp@PAC06        READY
PAC06_pcl       hp@PAC06        READY
ATC08_pcl       hp@ATC08        READY
AMDC79_ps       hp@AMDC79       READY
LAB125_pcl      hp@LAB125       READY
LAB125_ps       hp@LAB125       READY
ATC_HPLJ5pcl    hp@ATC_HPLJ5    READY
ATC_HPLJ5PS     hp@ATC_HPLJ5    READY
ATC_QUEUE       lp0             READY
ATC_QUEUE       lp1             READY

您可以查看在/ var / spool / lpd / pio / @ local / custom中创建的打印队列的实际配置文件:

# ls -l /var/spool/lpd/pio/@local/custom/ATC_QUEUE:lp[[:digit:]]*
-rw-rw-r-- 1 root   printq 7019 Apr 28 10:29 /var/spool/lpd/pio/@local/custom/ATC_QUEUE:lp0
-rw-rw-r-- 1 root   printq 7019 Apr 28 10:31 /var/spool/lpd/pio/@local/custom/ATC_QUEUE:lp1

配置文件是可读的ASCII文本。 可读性是指纯文本格式,尽管它对于UNIX新手而言可能没有多大意义。 例如, 清单8是ATC_QUEUE:lp0的250行中的前20行。

清单8.查看打印队列配置文件
# head -20 /var/spool/lpd/pio/@local/custom/ATC_QUEUE:lp0
:056:__FLG::
:625:CB:S[B]DyEn:
:626:CC:S[C]DyEn:
:627:CD:S[D]DyEn:
:629:CF:S[F]DyEn:
:630:CG:S[G]DyEn:
:622:Ca:DyS[G500]I[1810532]EnR[pioattr1.cat,1,631;(diag1) - do not print job; display
main pipeline and pre-processing filter,(diag2) - do not print job; display all pipelines
and filters,(display) - print job; display all pipelines and filters,(ignore) - print job;
ignore stderr produced by filters,(normal) - print job; exit if filters produce stderr=
-a1,-a0\x27 \x27-A3,-a0\x27 \x27-A2,-a0\x27 \x27-A0,-a0\x27 \x27-A1]:%?%G_a%t-a%I_a%e-a%
I_a\x27 \x27-A%I_A%;
:013:_A:DnEnR[0,1,2,3]:1
:789:_E:S[B020]I[1810501]%IWY:!
:621:_H:S[F350]I[1810503]Dy:
:791:_J:S[C950]I[1810533]%IWY:+
:792:_K:S[B030]I[1810550]%IWY:!
:793:_L:S[D020]I[1810504]%IWY:+
:036:_O:Dn:2
:794:_W:S[B025]I[1810506]%IWY:!
:795:_X:S[D030]I[1810507]EtL[/usr/bin/ls -1 /usr/lib/lpd/pio/trans1 | /usr/bin/sed '/^850
$/d']V[%`WX]:ISO8859-1
:614:_Z:S[D035]I[1810534]%IWY:+
:063:_a:DnEnR[0,1]:0
:635:_b:S[D010]I[1810508]E#G[0..%?%G_l%{0}%=%t%e%G_l%G_t%-%{1}%-%d%;]:0
:658:_d:S[C925]I[1810509]EnL[%IW2]F1:a

查看虚拟打印机属性

现在您已经创建了虚拟打印机,请看一下它的属性。 要查看虚拟打印机的属性,请使用lsvirprt命令。

表3提供了执行lsvirprt时可以使用的一些开关。 有关开关的完整列表,请查看man lsvirprt

表3. lsvirprt开关
开关 描述
-a <attribute> 仅显示<attribute> 。 知道这一点很重要,因为虚拟打印机的属性列表很大。
-d <device> 查询名为<device>的队列<device>
-q <queue> 查询名为<queue>的打印机<queue>

清单9使用lsvirprt列出了本文前面创建的虚拟打印机的所有属性。

清单9.列出虚拟打印机属性
# lsvirprt -q ATC_QUEUE -d lp0 | moreName        Description                                               Value
__FLG       VALUES THAT MAY BE OVERRIDDEN WITH FLAGS ON THE     COMMAND LINE
CB          -------------- Text Print Options -------------
CC
----------- Job Processing Options ------------
CD
----------- Text Formatting Options -----------
CF
--------- Header/Trailer Page Options ---------
CG
------------- Messages/Diagnostics ------------
Ca          DIAGNOSTIC LEVEL                                          %?%G_a%t-a%I_a%e-a%I_a\x27 \x27-A%I_ A%;
_A          stderr returned? 0: no; 1: yes, &amp; pipelines; 2:   1 yes, &amp; values, pipelines
_E          DOUBLE-HIGH print?                                        !
_H          HOSTNAME for "PRINTED AT:" on HEADER PAGE
_J          RESTORE printer?                                          +
_K          CONDENSED print?                                          !
_L          WRAP long lines?                                          +
_O          Type of Input Paper Handling (1: manual, 2:               2 pinwheel, 3: sheetfeed)
_W          DOUBLE-WIDE print?                                        !
_X          CODE PAGE of print file                                   ISO8859-1
_Z          Send FORM FEED after each file?                           +
_a          0: Normal Print; 1: Return Flag Values &              0 Pipeline, But Don't Print
_b          BOTTOM MARGIN (lines)                                     0
_d          Print file TYPE                                           a
_e          EMPHASIZED print?                                         !
_f          Pre-processing FILTER NAME
_g          PAGE NUMBER where printing should begin                   1
_h          TITLE STRING for 'pr' filter
_i          Number of columns to INDENT                               0
_j          INITIALIZE printer?                                       +
_l          LINES per page                                            66

注意,我将输出传递给more 。 这样,您就可以查看虚拟打印机的所有属性。 仅此虚拟打印机就有近500行属性。

如果知道要查看的字段,则可以在-a开关后面附加属性名称。 本示例查看每页的行数或_l (小写L):

# lsvirprt -q ATC_QUEUE -d lp0 -a _lName         Description            Value
_l           LINES per page         66

更改虚拟打印机属性

到目前为止,您已经创建了虚拟打印机并查看了属性。 现在更改虚拟打印机属性之一。 chvirprt命令允许您将已知属性更改为可接受的值。

表4提供了一些在执行chvirprt时可以使用的开关。 有关开关的完整列表,请查看man chvirprt

表4. chvirprt开关
开关 描述
-a <attribute=value> 更改<attribute>的值为<value>
-d <device> 查询名为<device>的队列<device>
-q <queue> 查询名为<queue>的打印机<queue>

阅读有关lsvirprt的上一部分lsvirprt ,您现在知道如何查看每页行数的值。 要对此进行扩展,请完成以下步骤,将值从66更改为50:

  1. 首先,查看属性的值,以便您知道需要还原为什么:

    # lsvirprt -q ATC_QUEUE -d lp0 -a _l Name        Description         Value _l          LINES per page     66

    注意:最好记录下原始值和新值,以防您需要更改回原始值。

  2. 将每页的行数从66更改为50:

    # chvirprt -q ATC_QUEUE -d lp0 -a _l=50
  3. 验证更改是否成功:

    # lsvirprt -q ATC_QUEUE -d lp0 -a _lName        Description         Value
    _l          LINES per page      50

如您所见,每页行数的值已更改。

如果在进行了此更改之后,使用打印机的组的经理希望将值更改为60,并且还希望将可以定义的最大水平和垂直标签数更改为62,该怎么办? 幸运的是,您可以通过完成以下步骤同时进行两项更改:

  1. 首先,再次查看属性的值,以便您知道需要还原到什么值,如清单10所示。

    清单10.列出多个虚拟打印机属性
    # lsvirprt -q ATC_QUEUE -d lp0 -a _l -a mx -a myName        Description                                         Value
    _l          LINES per page                                      50
    mx          Maximum Number of Horizontal Tabs That Can Be       64 Defined
    my          Maximum Number of Vertical Tabs That Can Be         64 Defined
  2. 将属性更改为所需的值:

    # chvirprt -q ATC_QUEUE -d lp0 -a _l=60 mx=62 my=62
  3. 验证更改是否成功,如清单11所示。

    清单11.列出多个虚拟打印机属性
    # lsvirprt -q ATC_QUEUE -d lp0 -a _l -a mx -a my Name        Description                                         Value
    _l          LINES per page                                      60
    mx          Maximum Number of Horizontal Tabs That Can Be       62  Defined
    my          Maximum Number of Vertical Tabs That Can Be         62 Defined

也许只是我一个人,但我很疑惑,也许我更改了队列中的两个设备,或者不小心更改了错误的设备。 反复检查始终是一个好主意。 在清单11中 ,请注意,只有设备lp0发生了变化,而lp1保留了清单12中的原始值。

清单12.列出多个虚拟打印机属性
# lsvirprt -q ATC_QUEUE -d lp1 -a _l -a mx -a my Name        Description                                         Value
_l LINES    per page                                            66
mx          Maximum Number of Horizontal Tabs That Can Be       64 Defined
my          Maximum Number of Vertical Tabs That Can Be         64 Defined

删除虚拟打印机

无论您输入了错误的队列名称,不再需要打印队列,还是只是想了解如何删除队列,在AIX中删除虚拟打印队列都很容易。 IBM提供rmvirprt命令来适应好奇的管理员。

要删除本文前面创建的两个虚拟打印队列,只需执行以下命令:

# rmvirprt -q ATC_QUEUE -d lp1
# rmvirprt -q ATC_QUEUE -d lp0

通过执行rmvirprt ,您只需删除分配给打印队列的虚拟打印机。 打印队列仍然存在,但是当您再次查看打印机时,描述就消失了,如清单13所示。 这是因为虚拟打印机配置文件已通过rmvirprt删除。

清单13.显示所有打印队列
# piolsvp -p # PRINT QUEUE             PRINTER             DESCRIPTION PAC06_ps                hp@PAC06            generic(PostScript) PAC06_pcl               hp@PAC06            generic(PCL Emulation) ATC08_pcl               hp@ATC08            generic(PCL Emulation) AMDC79_ps               hp@AMDC79           hplj-4000 (PostScript) LAB125_pcl              hp@LAB125           hplj-4000 (PCL) LAB125_ps               hp@LAB125           hplj-4000 (PostScript) ATC_HPLJ5pcl            hp@ATC_HPLJ5        hplj-5si (PCL) ATC_HPLJ5PS             hp@ATC_HPLJ5        hplj-5si (PostScript) ATC_QUEUE               lp0 lp1

除了删除打印机队列描述外,请注意从/ var / spool / lpd / pio / @ local / custom spool目录中删除了实际的虚拟打印机:

# ls -l /var/spool/lpd/pio/@local/custom/ATC_QUEUE:lp[[:digit:]]*ls: 0653-341 The file /var/spool/lpd/pio/@local/custom/ATC_QUEUE:lp[[:digit:]]* does not
exist.

要在删除虚拟打印机后删除打印队列,请按照下列步骤操作:

  1. 查看有问题的打印机队列:

    # lsque -q ATC_QUEUE
    ATC_QUEUE: device = lp0,lp1
  2. 卸下打印机队列设备:

    # rmquedev -d lp1 -q ATC_QUEUE
    # rmquedev -d lp0 -q ATC_QUEUE
  3. 确认打印机队列设备已被删除:

    # lsque -q ATC_QUEUE
    ATC_QUEUE:
  4. 从打印队列中删除所有设备后,请删除实际队列:

    # rmque -q ATC_QUEUE

要验证虚拟打印机,打印机设备和打印队列已被删除,请执行以下操作:

  1. 验证是否已通过lsque删除了打印机队列。

    # lsque -q ATC_QUEUE
    lsque: (FATAL ERROR): 0781-193 Queue ATC_QUEUE: not found in qconfig file. Not
    printed.
  2. 验证打印机队列和设备已通过piolsvp移除,如清单14所示。
    清单14.显示所有打印队列
    # piolsvp -p# PRINT QUEUE               PRINTER          DESCRIPTION PAC06_ps                  hp@PAC06         generic (PostScript) PAC06_pcl                 hp@PAC06         generic (PCL Emulation) ATC08_pcl                 hp@ATC08         generic (PCL Emulation) AMDC79_ps                 hp@AMDC79        hplj-4000 (PostScript) LAB125_pcl                hp@LAB125        hplj-4000 (PCL) LAB125_ps                 hp@LAB125        hplj-4000 (PostScript) ATC_HPLJ5pcl              hp@ATC_HPLJ5     hplj-5si (PCL) ATC_HPLJ5PS               hp@ATC_HPLJ5     hplj-5si (PostScript)
  3. 最后,验证是否已通过lpstat除去了打印机队列,如清单15所示。
    清单15.使用lpstat查看打印队列
    # lpstat -WQueue           Dev           Status   Job    Files    User      PP   %   Blks Cp Rnk
    -------------- -------------- -------- ------ ------- ---------- ---- -- ----- -- ---
    PAC06_ps        hp@PAC06        READY
    PAC06_pcl       hp@PAC06        READY
    ATC08_pcl       hp@ATC08        READY
    AMDC79_ps       hp@AMDC79       READY
    LAB125_pcl      hp@LAB125       READY
    LAB125_ps       hp@LAB125       READY
    ATC_HPLJ5pcl    hp@ATC_HPLJ5    READY
    ATC_HPLJ5PS     hp@ATC_HPLJ5    READY

结论

阅读本文之后,您应该对AIX中的虚拟打印机,如何创建它们以及如何修改或管理其设备和队列有更好的了解。 了解有关打印机和系统上设置的队列的更多信息很重要。 许多人没有意识到您可以在队列中轻松更改多少设置。 您可以通过修改打印机以满足该人的需求来度过某人的一天。 祝好运!


翻译自: https://www.ibm.com/developerworks/aix/library/au-aixprinting/index.html

aix查看后台程序执行情况_AIX AZ:学习AIX后台处理程序后端程序相关推荐

  1. java设置手机后台进程限制_让java程序在后台一直执行(例如putty关闭后后台程序继续运行)...

    如果在终端中执行java -jar xxx.jar&命令,当终端关闭时,xxx.jar也会同时结束运行,但是如果执行nohup java -jar xxx.jar&命令,则程序会在后台 ...

  2. 精品微信小程序校园第二课堂在线学习网+后台系统|前后分离VUE

    <微信小程序校园第二课堂+后台管理系统|前后分离VUE>该项目含有源码.论文等资料.配套开发软件.软件安装教程.项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统,该后台采 ...

  3. python程序执行完后重头开始做烧饼_从“程序员转行卖烧饼”想到IT人创业

    我的一个朋友最近总在跟我念叨着"我不想做开发了,整天累死累活写程序,也攒不下几个钱.我想辞职搞点啥!" 我问他:"你想搞点啥?". 他说:"搞啥都比做 ...

  4. Java程序员macpro256够用吗_作为一名后端程序员,13寸的Macbook pro好还是15寸的好?...

    谢邀.给你一个全面的参考吧,我也有一台13寸的Mac,这个看个人选择,主要是用的侧重点不一样. 重量和大小 13英寸MacBook Pro的重量为3.02磅(1.37千克). 15英寸MacBook ...

  5. python程序员需要掌握哪些技术-高级的python 后端程序员, 应该掌握哪些技能点 ?...

    我觉得下面几个点可供你深入 1. Python元编程 可以通过多看一些优秀开源代码来学习,比如sqlalchemy,gunicorn等 2. Cython 不是CPython解释器,而是一种用pyth ...

  6. 让java程序在后台一直执行

    让java程序在后台一直执行(例如putty关闭后后台程序继续运行) Linux 2011-01-17 21:14:30 阅读73 评论0 字号:大中小 订阅 在linux系统下如何使一个程序在后台一 ...

  7. gdb - 暂停/恢复程序执行

    GDB - 暂停/恢复程序执行 在使用GDB调试程序的时候,经常需要暂停程序,以查看程序执行情况和上下文.GDB 提供了多种暂停程序的方式,包括 break point, watch point, c ...

  8. 【Windows 逆向】CheatEngine 工具 ( 汉化版 CE 工具推荐 | 编写简单 C++ 程序 | C++ 程序执行分析 | 使用 CE 修改上述 C++ 程序 )

    文章目录 一.汉化版 CE 工具推荐 二.编写简单 C++ 程序 三.C++ 程序执行分析 四.使用 CE 修改上述 C++ 程序 一.汉化版 CE 工具推荐 推荐一个汉化版的 CE 工具 : htt ...

  9. MFC程序执行过程剖析

    一 MFC程序执行过程剖析 1)我们知道在WIN32API程序当中,程序的入口为WinMain函数,在这个函数当中我们完成注册窗口类,创建窗口,进入消息循环,最后由操作系统根据发送到程序窗口的消息调用 ...

最新文章

  1. 从Nginx源码谈大小写字符转化的最高效代码以及ASCII码表的科学
  2. Activity的使用(四):两个activity的交互
  3. OprenCV学习之路一:将彩色图片转换成灰度图
  4. python 遍历字典嵌套_Python 字典嵌套循环遍历
  5. Kong Api 初体验、Kong安装教程
  6. [AMPPZ2014]Petrol
  7. 成都睿铂x云南省地矿测绘院:丽江玉龙高精度地籍免像控案例分享
  8. Spring源码阅读五 IOC容器初始化之 bean定义载入
  9. easyui-datagrid对行写样式
  10. 电压传感器: 工作原理、类型及电路图
  11. 红米 android8 刷机,【红米6 安卓8.1线刷包】MIUI V9.6.7.0.OCGCNFD稳定版 线刷精简包...
  12. 网易微博宣布将用户迁移至轻博客Lofter
  13. activiti-api-impl
  14. mysql:列类型之decimal、numeric
  15. C++.继承——虚继承
  16. Java内部锁(synchronized)中类锁和对象锁
  17. html标签的多级列表,word如何将标题样式关联多级列表
  18. Qt开发经验小技巧171-175
  19. 捷通华声联合清华海峡研究院 打造中国顶尖人工智能研究中心
  20. 支付宝集成中爬过的一系列坑

热门文章

  1. easeus恢复没有手机_使用EaseUS数据恢复向导恢复已删除的数据
  2. Tomcat安装部署及构建虚拟主机
  3. s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 0)
  4. CAN_BootLoader_UDS实现V1.2
  5. Bitmap 贴图加工成 PBR 贴图 Part2 - SETTING UP TO PIXAR RENDERMANTM RENDERING FOR MAYA.
  6. letv.php,乐视云 API - 如花花的个人空间 - OSCHINA - 中文开源技术交流社区
  7. 蓝桥杯python:乘积尾零
  8. Discoverer的安装
  9. ARM架构IMX6核心板在全自动生化分析仪中的应用
  10. 渡课2018-07-30(懵逼)