Чтобы зарезервировать блок памяти из ядра в Linux на базе ARM, вы также можете использовать узел reserved-memory
в файле дерева устройств (dts). В документации ядра (см. здесь ) есть пример:
memory {
reg = <0x40000000 0x40000000>;
};
reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;
/* global autoconfigured region for contiguous allocations */
linux,cma {
compatible = "shared-dma-pool";
reusable;
size = <0x4000000>;
alignment = <0x2000>;
linux,cma-default;
};
display_reserved: framebuffer@78000000 {
reg = <0x78000000 0x800000>;
};
multimedia_reserved: multimedia@77000000 {
compatible = "acme,multimedia-memory";
reg = <0x77000000 0x4000000>;
};
};
Вы должны сделать это наоборот, запустить скрипт
внутри экрана
:
screen -dm bash -c 'script -c "python test.py" output.txt'
Вы можете использовать флаг -L
для создания автоматического файла screenlog.0
например
$ screen -dm -L sh -c 'echo hello'
$ cat screenlog.0
hello
Если у вас есть длительный сеанс экрана, который не выполняется logged, то вы можете включить ведение журнала позже
например
$ screen -dm -S test sh -c 'while [ 1 ]; do date; sleep 1; done'
Теперь мы можем включить ведение журнала
$ screen -S test -p 0 -X log
Подождите некоторое время, потому что запись ведется блоками, и ...
$ cat screenlog.0
Fri Aug 26 13:25:49 EDT 2016
Fri Aug 26 13:25:50 EDT 2016
Fri Aug 26 13:25:51 EDT 2016
Fri Aug 26 13:25:52 EDT 2016
Fri Aug 26 13:25:53 EDT 2016
Fri Aug 26 13:25:54 EDT 2016
Fri Aug 26 13:25:55 EDT 2016
Fri Aug 26 13:25:56 EDT 2016
Fri Aug 26 13:25:57 EDT 2016
Fri Aug 26 13:25:58 EDT 2016
Другой способ сделать это — сначала прикрепить экран:
screen -r <pid or name>
, а затем:
Ctrl + A , H
Начнется вход вscreenlog.0
Может сработать!
screen sh -c './some-script 2>&1 | tee mylog.log'