ubuntu 16.04 update-rc.d使用说明及其它一些注意事项

原文地址:https://chenjiehua.me/linux/ubuntu-16-04.html

Ubuntu 16.04 LTS正式版刚发布,就迫不及待的要来重装系统了。虽然新系统不错,但是部分软件跟系统之间却出现了一些小坑……

update-rc.d

在安装 supervisor 时候采用 apt-get 方式正常安装,配置管理其他进程也都一切正常。然而,重启系统之后却发现 supervisor 里面的程序都没有启动,仔细一看,就连 supervisord 也没有随系统正常启动。挺郁闷的,14.04 中 apt-get 安装supervisor后都没出现过这个问题。

查看 /etc/init.d/supervisor 正常,可以通过 sudo service supervisor start 正常启动;再查看 /etc/rcX.d 各个目录,也发现有 S/KNNsupervisor ,不过却发现 NN=01,这里就有点异常了。

查看 update-rc.d 文档,对比 14.04 发现了一些区别:

可以看到 update-rc.d name defaults 命令发生了变化,同时 start/stop 也没有了。继续查看文档:

也就是说 update-rc.d 默认根据 /etc/init.d 中脚本内定义的依赖和 runlevel 来进行设置,而不再提供 NN让我们手动指定启动顺序,查看 /etc/init.d/supervisor:

Required-Start和 Required-Stop 两项应该是有点问题,具体不懂,参考了 redis-server 的启动脚本:

这里应该是缺少了 syslog,在 /etc/init.d/supervisor 中添加上 $syslog,然后再设置开机启动:

java

折腾kafka时候需要依赖java环境,一看 Ubuntu 16.04 提供了 openjdk-9-jre,那就 apt-get 安装一个。安装完成后启动 kafka,却报错:

难道 jre 安装有问题?

看起来也没什么问题呀,难道是openjdk的问题?那我就安装一下 oracle jre:

安装完成后,运行kafka还是报错。。。Google了一下 “PrintGCDateStamps”参数,发现有人遇到类似的问题,作者的解决方案是直接注释掉了kafka目录下的 ./bin/kafka-run-class.sh:

虽然总感觉有点别扭,但是总得让kafka跑起来先。

然后要跑 Apache Spark,执行 ./bin/pyspark,却又是java报错:

看了一下 java 的版本号:

略蛋疼,竟然会是版本号字符串问题。。。想想要不就装 jdk-8 的试试看:

看看现在系统里面已经安装的jdk:

选择不同版本的java:

选择 openjdk-8:

选择 oracle-java-8:

然后测试了 Spark,运行正常。再回头看看一开始 kafka 的问题,openjdk version 是 “9-internal”,看来一切都是jdk-9导致的坑爹。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值