分页: 1 / 1

为什么service zram的自动补全没有我新加上的选项?

发表于 : 2016-09-06 17:09
科学之子
为什么service zram的自动补全没有我新加上的选项?
optimize无法进行tab补全

代码: 全选

#!/bin/sh
### BEGIN INIT INFO
# Provides:          zram
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     S
# Default-Stop:      0 1 6
# Short-Description: Use compressed RAM as in-memory swap
# Description:       Use compressed RAM as in-memory swap
### END INIT INFO

# Author: Antonio Galea <[email protected]>
# Thanks to Przemysław Tomczyk for suggesting swapoff parallelization
# Distributed under the GPL version 3 or above, see terms at
#      https://gnu.org/licenses/gpl-3.0.txt

FRACTION=200

MEMORY=`perl -ne'/^MemTotal:\s+(\d+)/ && print $1*1024;' < /proc/meminfo`
CPUS=`grep -c processor /proc/cpuinfo`
SIZE=$(( MEMORY * FRACTION / 100 / CPUS ))

case "$1" in
  "start")
    param=`modinfo zram|grep num_devices|cut -f2 -d:|tr -d ' '`
    modprobe zram $param=$CPUS
    for n in `seq $CPUS`; do
      i=$((n - 1))
      echo $SIZE > /sys/block/zram$i/disksize
      mkswap /dev/zram$i
      swapon /dev/zram$i -p 10
    done
    ;;
  "stop")
    for n in `seq $CPUS`; do
      i=$((n - 1))
      swapoff /dev/zram$i && echo "disabled disk $n of $CPUS"
    done
    wait
    sleep .5
    modprobe -r zram
    ;;
  "optimize")
    for n in `seq $CPUS`; do
      i=$((n - 1))
      echo $i
      echo 1 > /sys/block/zram$i/compact
    done
    echo 1 > /proc/sys/vm/compact_memory
    ;;
  *)
    echo "Usage: `basename $0` (start | stop | optimize )"
    exit 1
    ;;
esac

Re: 为什么service zram的自动补全没有我新加上的选项?

发表于 : 2016-09-06 18:29
lilydjwg
为什么还有 Ubuntu 用户用 initscript?!Ubuntu 老早就在用自己的 upstart 了啊!新版本的 Ubuntu 换成了 systemd 啊!Ubuntu 用 initscripts 是很多很多年之前的事情了吧?

Re: 为什么service zram的自动补全没有我新加上的选项?

发表于 : 2016-09-06 18:37
vickycq
自动补全是静态的,需在 bash-completion 中事先关照好。
对于未事先关照的服务,只有 start stop 两个选项。
参见 file:///usr/share/bash-completion/bash_completion 第 1131 行 _service()

参考 http://unix.stackexchange.com/questions ... nitscripts

Re: 为什么service zram的自动补全没有我新加上的选项?

发表于 : 2016-09-06 19:33
科学之子
lilydjwg 写了:为什么还有 Ubuntu 用户用 initscript?!Ubuntu 老早就在用自己的 upstart 了啊!新版本的 Ubuntu 换成了 systemd 啊!Ubuntu 用 initscripts 是很多很多年之前的事情了吧?
因为我不用Ubuntu改用Debian了 :em06
虽然Debian也换了systemd,但Debian Wiki的脚本和用法说明依然有效

Re: 为什么service zram的自动补全没有我新加上的选项?

发表于 : 2016-09-06 20:48
lilydjwg
那你要不要也换 zsh 呢?zsh 的补全功能要强大很多哦~

Re: 为什么service zram的自动补全没有我新加上的选项?

发表于 : 2016-09-06 21:14
lilydjwg
WOW zsh 竟然连每个 service 支持哪些子命令都知道!

Re: 为什么service zram的自动补全没有我新加上的选项?

发表于 : 2016-09-06 21:22
科学之子
lilydjwg 写了:WOW zsh 竟然连每个 service 支持哪些子命令都知道!
非常感谢提醒
不过懒得折腾了...
我从Ubuntu过渡到Debian实在是因为Ubuntu的引导(在我看来)太奇葩了,曾经能成功引导的我现在已经完全引导不了了.
再有就是更新也是很折腾人,Bug一堆还"更新特快";
刚把A版本的Bug一点点的想办法凑合了,又提示说让我滚动升级到B版本...
不升级的话几个月之后源就失效了...

Re: 为什么service zram的自动补全没有我新加上的选项?

发表于 : 2016-09-06 21:50
lilydjwg
233

其实一点也不折腾的哦~试试看:

代码: 全选

apt-get install -y zsh autojump git
git clone https://github.com/lilydjwg/dotzsh.git ~/.zsh
ln -s .zsh/zshrc ~/.zshrc
PS: 其实你可以试试 Arch 的哦~