Centos 执行shell命令返回127错误

shell脚本功能:
连接mysql,自动创建数据库,脚本如下

mysql -h$MYSQL_IP -u$MYSQL_USER -p$MYSQL_PASSWORD --default-character-set=utf8 -e "create database IF NOT EXISTS test"

数据库IP、用户、密码采用参数传值

问题描述:
root用户登录,直接执行.sh脚本,一切正常,使用java程序调用,命令返回127错误

解决思路:
网上查了一下,应该是java运行环境和登录用户的运行环境存在差异造成的,在脚本执行之前,添加. /etc/profile,加载环境变量,问题解决

折腾到晚上8点,唉...

时间: 2024-10-10 20:59:44

Centos 执行shell命令返回127错误的相关文章

Python之路35-subprocess模块和Python3中常用执行shell命令方法

import subprocess #执行命令,返回命令执行状态 , 0 or 非0 retcode = subprocess.call(["free","-m"])    #返回值可判断执行是否正确,命令执行结果直接返回到屏幕 #执行命令,如果命令结果为0,就正常返回,否则抛异常 result = subprocess.check_call(["ls","-l"]) #执行命令,并返回结果,注意是返回结果,不是打印,下例结果

在 Ruby 中执行 Shell 命令的 6 种方法

我们时常会与操作系统交互或在 Ruby 中执行 Shell 命令.Ruby为我们提供了完成该任务的诸多方法. Exec Kernel#exec 通过执行给定的命令来替换当前进程,例如: $ irb >> exec 'echo "hello $HOSTNAME"' hello codefun $ 注意 exec 利用 echo 命令替换了 irb 进程,然后退出.因为 Ruby 实际上结束了该方法,所以只能有限使用.该方法的缺点是,你无法从 Ruby 脚本中知道命令是执行成功

python执行shell命令

python执行shell命令 #!/usr/bin/python2.7 #coding=utf-8 import shlex import datetime import subprocess import time def execute_command(cmdstring, cwd=None, timeout=None, shell=False): # 执行一个SHELL命令 ## 封装了subprocess的Popen方法, 支持超时判断,支持读取stdout和stderr ## 参数:

程序内执行shell命令自动获取局域网内所有在线IP和开放端口(Linux)

前言 题目说的有点长,其实就是以下几件事,第一是让Shell命令可以在程序内执行,然后将执行结果传递给变量,从而可以进行后续的事务处理,第二是使用nmap命令获取当前局域网内所有在线IP和开放的端口,最后就是对nmap获得的结果进行处理,得到只有IP和端口的结果. Linux命令行的强大功能相信使用Linux的人都知道,一个命令等于你在windows用几百行甚至上千行的代码量才能实现,所以,如果很好的利用shell命令,可以说是事半功倍. 而要充分利用shell的结果,必然是需要获得可以处理的命

执行shell命令的函数——system()、popen()

1.FILE* popen(const char* cmd,const char* type); int pclose(FILE* stream); popen()函数fork()一个子进程,创建管道用于父子进程间通信,父进程要么从管道读,要么往管道写,执行一个shell以运行命令来开启一个进程 相比于system()的又是在于使用简单,popen()只返回两个值,成功返回子进程的status,失败返回-1 2.int system(const char* cmd); 处理了fork().exe

subprocess模块还提供了很多方便的方法来使得执行 shell 命令

现在你可以看到它正常地处理了转义. 注意 实际上你也可以在shell=False那里直接使用一个单独的字符串作为参数, 但是它必须是命令程序本身,这种做法和在一个列表中定义一个args没什么区别.而如果当shell=False时候直接执行字符串命令,则会报错: >>> subprocess.Popen('echo "Hello world!"', shell=False)Traceback (most recent call last):File "<

批量执行shell命令

虽然目前都实现了自动化如puppet saltstack在环境中的应用,但工作中不可避免的要自己写一些简单的批量执行shell命令的脚本. python paramiko模块是目前使用得较为顺手的模块,执行命令时基本无需要转换,直接将shell命令扔进去执行就OK 简单示例,10个线程同时执行ssh或scp动作,未设置timeout时间,如执行长时间无反应会导致脚本执行问题: #!/usr/bin/python # _*_ coding: utf-8 _*_ import paramiko im

让你提前认识软件开发(23):如何在C语言中执行shell命令?

第1部分 重新认识C语言 如何在C语言中执行shell命令? [文章摘要] Linux操作系统具备开源等诸多优秀特性,因此在许多通信类软件(主流开发语言为C语言)中,开发平台都迁移到了Linux上,同时shell操作在Linux的编程中占有很重要的地位,这就需要开发人员熟练掌握在C语言中执行shell命令的相关操作. 本文用实际的代码演示了如何在C语言程序中执行shell命令,为相关软件开发工作的开展提供了参考. [关键词] Linux  C语言  shell  命令  开发 一.程序执行流程

ruby中执行shell命令找到进程并kill掉

shell命令获得进程id的方法有三种: 1. ps -A |grep cmdname| awk '{print $1}' 2. pidof cmdname 3. pgrep cmdname ruby中怎么做呢? ruby中有三种方式执行shell命令: %x: 执行命令并返回执行结果 exec:执行命令并退出. system:执行命令并返回true或false. 所以这里要使用%x来取得返回结果. 比如要killsublime: result = %x[pgrep sublime] %x[su