一 开启自启动 gitlab思考
1在ubantu(linux)系统上 装了gitlab后 希望添加开机自动启动gitlab服务。
2 手动启动的方式:cd 'prt/gitlab-7.14.3-0' sudo .manager-linux.run启动图形管理 然后点击全部启动。或者 stlscript.sh start执行。
3 linux系统 开机启动的方式有两种,一是 etc/rc.local 中的exti 0 前 添加执行。 另一种不尝试不介绍。
在打开etc/rc.loacl 后,文件内容是空的,并没有发现exit 0 。自己添加。然后学习 linux脚步的写法
4利用 一个自带的软件--启动应用程序(后来才发现有这么个软件)
二 linux脚本学习
1开头 必须是 #!/bin/sh #!表示以什么程序来执行下面的命令
2编译 chmod +x filename 这样才能用./filename 来运行 这句没理解.
编译两个字 应该去掉,chmod 是修改文件权限的命令。
r 表示有可读取的权限,
w 表示有可写入的权限,
x 表示有可执行的权限,
X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
3 需要输入密码,提供自动交互。
方法一(重定向)简单直观,也经常有实际应用,但是在自动交互领域功能有限。
方法二(管道)也很简单直观,有时甚至不用sleep配合就能展现强大的自动交互实力,但是在某些时候也束手无策。
方法三(expect)在功能上是最为强大的,expect本来就是为实现自动交互功能而生,但是缺点是需要安装expect包,在嵌入式等环境下难以安装。
方法二:
于是我便写了一个脚本,意图一键即可打开这个控制台程序。
最初是这样的:
复制代码代码如下:
#!/bin/bash
#执行xampp控制台
cd /opt/lampp/
sudo ./manager-linux-x64.run
但是执行之后还是会让你输入密码,十分的不方便。
于是想到了管道,经过修改后,终于可以不用输入密码,一键sudo并打开程序了。
格式:echo '你的密码'|sudo -S 执行命令
复制代码代码如下:
#!/bin/bash
#执行xampp控制台
cd /opt/lampp/
echo 'yourpassword'|sudo -S ./manager-linux-x64.run
三 总结
最终写了脚本
#! /bin/sh
cd '/opt/gitlab-7.14.3-0'
echo '我的密码'|sudo -S ./ctlscript.sh start
echo '我的密码'|sudo -S ./manager-linux.run
echo 'pwd auto input and enter ----run gitlab auto'
并利用 启动应用程序 这个ubantu自带的软件 加入了开机自启动。其他方式 都或多或少有问题。