Как изменить каталог строки TMUX `Status` при запуске?

Думаю, Решение некоторых общих проблем из это может вам помочь.


И это важная часть

Увеличение дискового пространства

Обычно (к сожалению) облачный базовый ящик поставляется с дисками в формате VMDK. Если вам повезло и ваш диск имеет формат VDI, вы можете решить эту проблему следующим образом. Но VMDK не может быть расширен, поэтому вам нужно добавить еще один диск к вашей виртуальной машине. Если сделать это вручную сложно, можете ли вы сделать это с помощью Vagrant? Что ж, теперь, когда я решил, это не так сложно:

Создайте сценарий под названием "bootstrap.sh" в вашем рабочем каталоге и добавьте следующие строки:

pvcreate /dev/sdb
vgextend VolGroup /dev/sdb
lvextend /dev/VolGroup/lv_root /dev/sdb
resize2fs /dev/VolGroup/lv_root

VolGroup и lv_root могут изменяться в разных дистрибутивах. Но он у меня работает и на Ubuntu.

А затем добавьте этот код в свой Vagrantfile:

...
  config.vm.provider :virtualbox do |vb|
  ...
  # Validate this should be run it once
  if ARGV[0] == "up" && ! File.exist?("./disk1.vdi")
    vb.customize [
      'createhd',
      '--filename', "./disk1.vdi",
      '--format', 'VDI',
      # 100GB
      '--size', 100 * 1024
    ]

    vb.customize [
      'storageattach', :id,
      '--storagectl', 'SATA Controller',
      '--port', 1, '--device', 0,
      '--type', 'hdd', '--medium',
      file_to_disk
    ]
  end

  if ARGV[0] == "up" && ! File.exist?("./disk1.vdi")
    # Run script to map new disk
    config.vm.provision "bash", path: "bootstrap.sh"
    # Run script to increase swap memory
    config.vm.provision "bash", path: "increase_swap.sh"
  end
...

Это создает файл диска VDI емкостью 100 ГБ. И привязан к вашей ОС.

Эта проблема решается при создании облачных Vagrant-боксов, таких как экземпляры AWS EC2 с Vagrant: D

Увеличение памяти подкачки

Когда я устанавливаю продукты Oracle Fusion Middleware, им требуется некоторый объем памяти подкачки, но базовый блок поставляется с небольшим объемом свопа.

Чтобы решить эту проблему, добавьте этот сценарий под названием «Увеличить_swap.sh» в свой рабочий каталог:

#!/bin/sh

# size of swapfile in megabytes
swapsize=8000

# does the swap file already exist?
grep -q "swapfile" /etc/fstab

# if not then create it
if [ $? -ne 0 ]; then
  echo 'swapfile not found. Adding swapfile.'
  fallocate -l ${swapsize}M /swapfile
  chmod 600 /swapfile
  mkswap /swapfile
  swapon /swapfile
  echo '/swapfile none swap defaults 0 0' >> /etc/fstab
else
  echo 'swapfile found. No changes made.'
fi

# output results to terminal
df -h
cat /proc/swaps
cat /proc/meminfo | grep Swap

Если вы уничтожите и поднимите свой ящик сейчас, у вас будет новый ящик с 8 ГБ добавленной памяти подкачки и 100 ГБ дополнительного диска космос.

0
25.09.2018, 12:24
2 ответа

После отправки вопроса в репозиторий tmux оказалось, что он уже исправлен, но все еще находится на стадии release-candidate. поэтому мне пришлось пересобирать из исходников.

0
28.01.2020, 02:23
$ ps -ef | grep tmux
username 13965 12977  0 13:03 pts/2    00:00:00 grep --color=auto tmux

$ cd /tmp

/tmp $ tmux

(within tmux) /tmp $ ps -ef | grep tmux
username 14244 12977  0 13:04 pts/2    00:00:00 tmux
username 14246     1  0 13:04 ?        00:00:00 tmux
username 14269 14247  0 13:04 pts/3    00:00:00 grep --color=auto tmux

(within tmux) /tmp $ ls -l /proc/14244/cwd /proc/14246/cwd
lrwxrwxrwx 1 username  username  0 Sep 25 13:07 /proc/14244/cwd -> /tmp/
lrwxrwxrwx 1 username  username  0 Sep 25 13:07 /proc/14246/cwd -> /tmp/

Похоже, что рабочим каталогом как клиентского, так и серверного процессов tmux является каталог, в котором был запущен tmux, , но любые процессы, запущенные из строки состояния tmux, например #(pwd)в вашей строке status-rightзапускаются с $HOMEв качестве рабочего каталога.

Изменение этого поведения потребует изменения tmuxисходного кода и компиляции собственной версии.

3
28.01.2020, 02:23

Теги

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