ОС не может перезапустить команду, которая завершилась ошибкой, сама по себе. Однако вы можете встроить такой механизм в свой сценарий. В случае сбоя вилки возвращается -1, и дочерний процесс не создается. Вышеупомянутая ошибка связана с EAGAIN . проверьте лимиты ресурсов (ulimit и память). соответствующие разделы на страницах руководства ниже -
RETURN VALUE
On success, the PID of the child process is returned in the parent,
and 0 is returned in the child. On failure, -1 is returned in
the parent, no child process is created, and errno is set appropriately.
EAGAIN fork() cannot allocate sufficient memory to copy the parent's page tables and
allocate a task structure for the child.
EAGAIN It was not possible to create a new process because the caller's RLIMIT_NPROC
resource limit was encountered. To exceed this limit, the
process must have either the CAP_SYS_ADMIN or the CAP_SYS_RESOURCE capability.
Да, вы можете распечатать несколько страниц:
command | lpr -P <printername> -p <priority from 1 to 100>
Пример использования:
ls -l | lpr -P hpprinter -p 2
Чтобы расширить принятый ответ:
Используя pdfjam
, вам также нужно будет передать параметр альбомной ориентации. Использование:
pdfjam input_a.pdf input_b.pdf -o output.pdf --nup 2x1 --landscape