当前位置: 首页 > 面试题库 >

使用system()执行shell脚本返回256。这是什么意思?

杜昆琦
2023-03-14
问题内容

我已经编写了一个Shell脚本来软重启HAProxy(反向代理)。从外壳执行脚本。但是我想要一个守护程序来执行脚本。那不行
system()返回256。我不知道这可能意味着什么。

#!/bin/sh
# save previous state
mv /home/haproxy/haproxy.cfg /home/haproxy/haproxy.cfg.old
mv /var/run/haproxy.pid /var/run/haproxy.pid.old

cp /tmp/haproxy.cfg.new /home/haproxy/haproxy.cfg
kill -TTOU $(cat /var/run/haproxy.pid.old)
if haproxy -p /var/run/haproxy.pid -f /home/haproxy/haproxy.cfg; then
  kill -USR1 $(cat /var/run/haproxy.pid.old)
  rm -f /var/run/haproxy.pid.old
  exit 1
else
  kill -TTIN $(cat /var/run/haproxy.pid.old)
  rm -f /var/run/haproxy.pid
  mv /var/run/haproxy.pid.old /var/run/haproxy.pid
  mv /home/haproxy/haproxy.cfg /home/haproxy/haproxy.cfg.err
  mv /home/haproxy/haproxy.cfg.old /home/haproxy/haproxy.cfg
  exit 0
fi

HAProxy与用户haproxy一起执行。我的守护程序也有它自己的用户。两者都使用sudo运行。

有什么提示吗?


问题答案:

根据这个和那个,Perl的system()返回退出值乘以256。所以它实际上是通过退出的1



 类似资料:
  • 问题内容: 在shell脚本中,美元符号后跟at符号()是什么意思? 例如: 问题答案: 是传递给脚本的 所有 参数。 举例来说,如果你打电话,然后将等于。 如果您这样做: 然后里面引用: 该参数将传递给每个参数,并用双引号引起来,从而允许调用者从空格中获取参数并将其传递。

  • 本文向大家介绍什么是Shell脚本?,包括了什么是Shell脚本?的使用技巧和注意事项,需要的朋友参考一下 Shell脚本是由Unix Shell(是命令行解释器)运行的计算机程序中的命令列表。Shell脚本通常具有描述步骤的注释。Shell脚本执行的不同操作是程序执行,文件操作和文本打印。包装器也是一种Shell脚本,用于创建程序环境,运行程序等。 贝壳类型 Unix中有两种主要的Shell类型

  • 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do touch test_$i.txt done 示例解释 第1行:指定脚本解释器,这里是用/bin/sh做解释器的 第2行:切换到当前用户的home目录 第3行:创建一个目录shell_tut 第4行:切换到s

  • 问题内容: 我想从PHP脚本执行系统上存在的Bash脚本。我的系统上有两个脚本。其中一个是称为at at 的PHP脚本,另一个是称为at at 的Bash脚本。 我的client.php脚本看起来像 我的睾丸看起来像 当我在终端上执行以下操作时 我在终端上得到以下输出 但是当我在打开页面时 我得到以下输出 即使执行了chmod + x testscript,我仍然收到此错误。 我如何从浏览器中获取

  • 问题内容: 我正在看这段代码。我想知道以下代码段的含义 。 在一个问题中,它说代表字符串,但这是在Perl中。这里也一样吗? 此外,我想知道该变量是否自动更新。它已被初始化为开始时,但后来如何递增? 问题答案: 检查左操作数的值是否小于或等于()右操作数的值,如果是,则条件为true。 考虑: 那是真的。

  • 问题内容: 一个在Management Studio中工作并返回相同结果的查询,在我们可以找到的任何文档中都未定义。它应该只返回rowcount或。这是什么意思?如果重要的话,驱动程序是JDBC- ODBC桥。 例: 该查询有效,因为该行已添加到数据库中,但是奇怪的是它返回-1,而文档说它只会返回0或行数(如我所纠正)。 更新: 在Management Studio中运行此命令将显示“命令已成功完