Ручной дуплекс Gnome в Gnome 3 на Arch Linux

введите , Ctrl - А и d d генерируют нормальные коды ASCII.

Таким образом, возможное решение может быть программой, которая создает неназванную трубу ( () ), затем Fork () Детский процесс, который сначала связывает конечный конец трубы К своему стандартному входу, затем выполнение экрана в дочернем процессе ( Execive () или аналогичный). Если эта программа запускается, вы можете написать командные строки, необходимые для начала процесса для записи запуска созданной трубы.

Как вы положили задания в эту программу, это еще одна тема. Вы могли бы, например, написать небольшой планировщик себя (что-то вроде очереди заданий и некоторый код, который начинается с большинства n процессов параллельно).

== Редактировать ==

для Linux (или, может быть, некоторые ООН * XES тоже), программа может выглядеть следующую:

#include <sys/types.h>
#include <sys/linux.h>
#include <unistd.h>

int main(void) {
    int fds[2] = {0};
    pid_t pid = 0;

    pipe(fds);               /* Creates an unnamed pipe */
    pid = fork();            /* Forks a new process */
    if (pid == 0) {
        static char const *argv[] = {"/usr/bin/screen", NULL};
                             /* Note: The array might need to be changed,
                              *       depending on your requirements
                              *       (eg. command-line arguments)
                              */
        dup2(fds[0], stdin); /* Binds the read end of the pipe to stdin */
        execve(argv[0], argv, NULL);
        /* If you reach this point, your execve() failed */
    }
    sleep(1);                /* Waits for the child process to execute
                              * screen */
    char const data[] = "./MyJob.sh\n\x00d";
                             /* Note: You must replace the '\x00' by the
                              *       ASCII code of C-a!
                              */
    write(fds[1], data, sizeof(data));
                             /* Writes the name of the job along with the
                              * control codes to the child process
                              */
    int retcode = 0;
    waitpid(pid, &retcode, 0);
                             /* Waits for the child process to terminate */
                             /* Note: WEXITSTATUS(retcode) gets the exit
                              *       status of the child process */
    return 0;
}

Эта программа должна проиллюстрировать идею, ему не хватает необходимой обработки ошибок.

1
02.11.2014, 16:43
1 ответ

Поскольку вы используете putty Я предполагаю, что вы хотите версию Emacs, отличную от X:

emacs -nw test.txt

откроет test.txt в неоконной версии Emacs.

Если необходимо открыть файл test.txt в определенной строке и столбце, используйте:

emacs -nw +5:8 test.txt

Курсор будет установлен в столбец 8 в строке 5 (или в конце этой строки, если она недостаточно длинная).

-121--230368-

Я предполагаю, что это обычный раздел (PC BIOS или GPT).

  1. Необходимо создать резервную копию таблицы разделов (например, с помощью sfdisk -d/dev/sda или parted/dev/sda «unit s» print )

  2. Необходимо убедиться в наличии свободного места за разделом.

  3. Если у вас нет инструмента, позволяющего расширить раздел непосредственно, то вы должны удалить раздел и воссоздать его в том же секторе, но с большим размером.

  4. После увеличения раздела выполните resize2fs/dev/xvdb1 , чтобы расширить файловую систему, чтобы охватить весь раздел.

-121--133785-

Я решил проблему.

Проблема в том, что /etc/xdg/autostart/gmd-applet-3.py.desktop запускает скрипт python2, тогда как по умолчанию python на Arch - python 3.

Я изменил строку EXEC в файле .desktop с

Exec=/usr/share/gnome-manual-duplex/gmd-applet-3.py run-in-tray

на

Exec=python2 /usr/share/gnome-manual-duplex/gmd-applet-3.py run-in-tray

и он работал отлично.

0
28.01.2020, 01:51

Теги

Похожие вопросы