Есть ли способ поместить задний план на задний план с помощью привязки клавиш?

Чтобы поставить на передний план работу, в фоновом режиме я нажимаю cltr+Z, а затем bg [job-number], Есть ли способ сделать это за один шаг вместо двух, с помощью некоторой команды cltr+[key]?

И я не имею в виду &, Я хочу поместить процесс, который я уже запустил, и взаимодействую с ним в фоновом режиме.

1 ответ

Решение

Вы можете пропустить номер идентификатора задания: если вы пропустите его, он заберет последнее приостановленное задание из текущей среды. Так что cltr+Z и bg короче

Если вы добавите это в свой .profile или же .bashrc

bind '"\ek"':"\"bg\C-m\""

Alt+W должен поставить bg на вашем экране и выполните его так, чтобы он оказался в фоновом режиме.

Пример:

rinzwind@discworld:~$ smplayer 
This is SMPlayer v. 0.6.9 (SVN r3447) running on Linux
^Z
[1]+  Stopped                 smplayer
rinzwind@discworld:~$ bind '"\ek"':"\"bg\C-m\""
[1]+ smplayer &

Я не смог добавить cltr+Z в команду, хотя. Вероятно, из-за игнорируемого сигнала:

Ctrl + Z Сигнал приостановки отправляет SIGTSTP работающей программе, тем самым останавливая его и возвращая управление оболочке.

12.1.1.2. Сигналы к вашей оболочке Bash

При отсутствии каких-либо ловушек интерактивная оболочка Bash игнорирует SIGTERM и SIGQUIT. SIGINT перехватывается и обрабатывается, и если управление заданиями активно, SIGTTIN, SIGTTOU и SIGTSTP также игнорируются. Команды, которые выполняются в результате подстановки команд, также игнорируют эти сигналы при генерировании клавиатуры.

SIGHUP по умолчанию выходит из оболочки. Интерактивная оболочка отправит SIGHUP на все задания, запущенные или остановленные; см. документацию по встроенной функции disown, если вы хотите отключить это поведение по умолчанию для определенного процесса. Используйте опцию huponexit для уничтожения всех заданий при получении сигнала SIGHUP, используя встроенный магазин.

Другие вопросы по тегам