- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用 ubuntu 16.04 操作系统作为 VM。
在创建容器时,我在 entrpoint.sh 中有一些命令没有按预期工作或表现不佳,但是当我在容器内手动运行时,相同的命令正在工作,准确地说,下面是我的简单 linux cp 命令递归地从源复制到目标并且还解压缩命令。
在我的 entrypoint.sh 中我有三个命令:
cd /tmp/localization/Tpae7610
unzip \*.zip
cp -r /tmp/localization/Tpae7610/* /home/db2inst1/maximo/
当容器启动时,最后两个命令不起作用,当我说它不起作用时,这意味着它没有给出任何错误,但没有按预期将源内容复制到目的地,也没有解压缩 .zip 文件
注意:但是当我在容器内手动运行时,相同的命令按预期工作。
入口点.sh
#!/bin/bash
sysctl -w kernel.shmmni=1024
sysctl -w kernel.shmall=2097152
sysctl -w kernel.msgmnb=65536
sysctl -w kernel.msgmax=65536
sysctl -w kernel.msgmni=4096
sysctl -w kernel.shmmax=4294967296
#set -e
#
# Initialize DB2 instance in a Docker container
#
# # Authors:
# *
#
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
mkdir -p /db2fs
chown db2inst1:db2iadm1 /db2fs
chmod -R 755 /db2fs
#cp /tmp/maxinst.sh /home/db2inst1/maximo/Maximo-7.6-CD/tools/maximo/maxinst.sh
if [ -z "$DB2INST1_PASSWORD" ]; then
echo ""
echo >&2 'error: DB2INST1_PASSWORD not set'
echo >&2 'Did you forget to add -e DB2INST1_PASSWORD=... ?'
exit 1
else
echo "db2inst1:$DB2INST1_PASSWORD" | chpasswd
fi
if [ -z "$LICENSE" ];then
echo ""
echo >&2 'error: LICENSE not set'
echo >&2 "Did you forget to add '-e LICENSE=accept' ?"
exit 1
fi
if [ "${LICENSE}" != "accept" ];then
echo ""
echo >&2 "error: LICENSE not set to 'accept'"
echo >&2 "Please set '-e LICENSE=accept' to accept License before use the DB2 software contained in this image."
exit 1
fi
if [[ $1 = "db2start" ]]; then
echo "Performing botc database start"
if [ ! -d /db2fs/db2inst1 ]; then
echo "Database location does not exist, creating database"
chown -R db2inst1:db2iadm1 /maxdb7605
chown -R db2inst1:db2iadm1 /home/db2inst1/maximo
find /maxdb7605 -type d -exec chmod 755 \{\} \;
find /maxdb7605 -type f -exec chmod 644 \{\} \;
cd /home/db2inst1/maximo
#unzip -o tools.zip && rm tools.zip
#unzip -o applications.zip && rm applications.zip
set -x
cd /home/db2inst1/maximo/tools
if [ ! -f java ]; then
ln -s /home/db2inst1/sqllib/java java
fi
su - db2inst1 <<EOH
db2start
db2 create database maxdb76 on /db2fs dbpath on /db2fs using codeset UTF-8 territory us pagesize 32 K
db2 connect to maxdb76
db2 create bufferpool MAXBUFFPOOL pagesize 32K
db2 grant connect on database to user maximo
db2 GRANT DBADM,SECADM, CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT ON DATABASE TO USER maximo
db2 GRANT USAGE on WORKLOAD SYSDEFAULTUSERWORKLOAD TO USER maximo;
db2 create schema maximo authorization maximo
db2 create regular tablespace MAXDATA pagesize 32k managed by automatic storage extentsize 16 overhead 12.67 prefetchsize 16 transferrate 0.18 bufferpool MAXBUFFPOOL dropped table recovery on NO FILE SYSTEM CACHING
db2 grant use of tablespace MAXDATA to user maximo
db2 update db cfg using LOGFILSIZ 5000
db2 update db cfg using LOGPRIMARY 50
db2 update db cfg using LOGSECOND 50
db2 connect reset
db2stop force
db2start
cd /maxdb7605
db2set DB2CODEPAGE=1208
db2 connect to maxdb76
db2 -t -f /maxdb7605/dbschema.sql
db2 -t -f /maxdb7605/dev_grants.sql
db2move maxdb76 LOAD -u maximo -p maximo -l lobs
db2 connect to maxdb76 user maximo using maximo
db2 -x "select 'values nextval for MAXIMO.',sequencename,';' from maxsequence" > /maxdb7605/sequence_update.sql
db2 -t -f /maxdb7605/sequence_update.sql
db2 connect reset
EOH
rm -rf /maxdb7605
set +x
nohup /usr/sbin/sshd -D 2>&1 > /dev/null &
cd /home/db2inst1/maximo/tools/maximo
chmod +x TDToolkit.sh
chmod +x updatedb.sh
dos2unix TDToolkit.sh
dos2unix updatedb.sh
./updatedb.sh
export JAVA_HOME=/opt/ibm/java-x86_64-70
export JRE_HOME=/opt//home/db2inst1/maximoibm/java-x86_64-70/jre
export PATH=${JAVA_HOME}/bin:$PATH
cd /
cd /tmp/localization/Tpae7610
unzip \*.zip
cp -a /tmp/localization/Tpae7610/* /home/db2inst1/maximo/
cd /tmp/localization/Lightning7604
unzip \*.zip
cp -a /tmp/localization/Lightning7604/* /home/db2inst1/maximo/
cd /tmp/localization/BOTC7610
unzip \*.zip
cp -a /tmp/localization/BOTC7610/* /home/db2inst1/maximo/
cd /tmp
#remove localization folder from tmp folder
rm -rf localization
cd /home/db2inst1/maximo/tools/maximo
#./TDToolkit.sh -addlangPT -useexpander
#./TDToolkit.sh -addlangJA -useexpander
#./TDToolkit.sh -addlangDE -useexpander
#./TDToolkit.sh -addlangIT -useexpander
#./TDToolkit.sh -addlangFR -useexpander
#./TDToolkit.sh -addlangES -useexpander
#./TDToolkit.sh -pmpupdatenxtgenui -useexpander
# ./TDToolkit.sh -pmpupdatez_botc -useexpander
chmod -R 777 /home/db2inst1/maximo/tools/maximo/log
#healthcheck looks for this file to indicate the container is initialized
touch /tmp/container_started
while true; do sleep 1000; done
exec "/bin/bash"
#statements
else
su - db2inst1 <<EOH
db2start
db2 catalog db maxdb76 on /db2fs
db2 terminate
db2 connect to maxdb76
EOH
touch /tmp/container_started
while true; do sleep 1000; done
exec "/bin/bash"
fi
sleep 10
fi
最佳答案
要么/tmp/localization/Tpae7610/目录下的文件没有权限。
尝试命令 cp -v(verbose 将显示复制的文件)注释脚本中的 rm -rf localization
。然后调试脚本。
关于linux - 为什么一个 linux 命令在容器内运行但在 entrpoint.sh 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49553339/
我发现了以下区别: catalina.sh 运行 ---> 在前台启动 tomcat。 startup.sh ---> 在写入响应时在后台启动 tomcat在日志文件中。 我找不到与此命令的比较: t
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: Whats the difference between running a shell script as ./s
我正在尝试使用 bash 和数组。但是执行示例脚本时,我收到了意外的语法错误消息:example.sh: 3: example.sh: Syntax error: "("unexpected。这是脚本
我有文件 config.sh: data_dir=/home/olle/investing_data bin_dir=/home/olle/investing_bin 我想在两个单独的脚本a.sh 和
我正在处理一个 sh 脚本,其中我处于 WHILE 循环中,其中每次迭代都会增加一个变量,并且我想每五次迭代保存一个文件。 我通常会做的(用 C 语言说)是做一个 if ( n % 5 == 0)测试
这个 STR="Hello\nWorld" echo $STR 作为输出产生 Hello\nWorld 而不是 Hello World 如何在字符串中添加换行符? 注意:这个问题与echo无关。我知道
这个 STR="Hello\nWorld" echo $STR 作为输出产生 Hello\nWorld 代替 Hello World 我应该怎么做才能在字符串中换行? 注意:这个问题不是关于echo的
我有一个看起来像这样的脚本 #!/bin/bash function something() { echo "hello world!!" } something | tee logfile 我已经
在这里,我有一个名为 load.sh 的 shell 脚本。 它用监督启动我名为“demo”的程序,当我用 sh load.sh start | 运行它时停止,它运行良好。 但是,当我使用 ./loa
我刚刚从官方网站下载了 robomongo 64 位的 ubuntu。然后我打开我的终端并查看文件夹结构并从 bin 文件夹执行命令。 sh robomongo.sh 我遇到这样的错误 robomon
这个问题已经有答案了: What is the difference between `./example.sh` and `sh example.sh` (3 个回答) 已关闭 8 年前。 使用 .
我正在尝试从 c 程序执行在 Linux 中启动新终端的命令 sh,但我收到此错误/bin/sh:/bin/sh: 当我使用 execv () 时无法执行二进制文件结果是 fork,然后是 execv
我想在我的 sh 脚本中使用数组 我的目标是为以下值创建数组 - a b c并按数组打印所有值 我成功打印每个数组,但未能打印数组中的所有值 请看下面的例子 设置arr中的每个值 n=1 eval a
我基本上正在寻找一种方法来做到这一点 list=$(command) while read -r arg do ... done output & while read -r arg
我部署了一个 Surge.sh 项目并成功发布,但是,我想对该项目进行一些更新,更新已在本地应用并且可以看到工作,但它尝试再次将其发布到同一个域但它没有'没有出现更新。我还尝试拆除该项目并重新上传它仍
我在 CentOS 上运行调用远程 sh 文件的 sh 脚本时遇到问题。在 user@host1 我有 start.sh 文件,里面有下一个命令 NODE1_SSH_PATH=user@host2 P
我是surge.sh plus客户,拥有自定义域,比方说 http://bobswidgets.com 但是,Bob 要求我为他的新定制服务设置一个子域。他要custom.bobswidgets.co
$ sh sh-3.2$ if > ps -ef | grep apple ; > then > echo APPLE > fi ; lazer 7584 7571 0 04:36 pts/4
我正在使用 bash shell 导出一些路径,如下所示: 环境.sh: export GOPATH=$GOPATH:$QBOXROOT/pili-zeus export PATH=$PATH:$
我在采购别名方面遇到了问题。这确实是具体案例。我使用 open_new.sh 打开带有两个选项卡的新终端窗口: #!/bin/bash gnome-terminal --tab --t
我是一名优秀的程序员,十分优秀!