带入参的python脚本,如何在后台执行?例如 python inotify.py /opt /opt/zch
时间: 2023-09-15 15:17:28 浏览: 113
可以使用nohup命令将带有参数的python脚本在后台执行,并且将输出保存到指定的文件中,例如:
```
nohup python inotify.py /opt /opt/zch > log.txt &
```
其中,"> log.txt" 表示将输出重定向到 log.txt 文件中,"&" 表示将命令放入后台执行。这样,即使退出终端,脚本也会继续在后台执行。如果需要停止脚本的执行,可以使用 "ps" 命令查找进程ID,然后使用 "kill" 命令杀死进程,例如:
```
ps -ef | grep inotify.py
kill <进程ID>
```
相关问题
python2,一个进程为inotify.py,输入参数为/opt/hikvision/web/components/tomcat85linux64.1/ /opt/hikvision/web/components/xconfig.1/bin/xconfig-server/config /opt/hikvision/web/components/sac.1/bin/web /opt/hikvision/web/components/activemq514linux64.1/bin/linux-x86-64 /opt/hikvision/web/components/rabbitmq.1/bin/rabbitmq-auth/config /opt/hikvision/web/components/ls.1/script/license /opt/hikvision/web/components/xresmgr.1/bin/xresmgr-rms/config /opt/hikvision/web/components/loganalysis.1/bin/loges /opt/hikvision/web/components/xjob.1/bin/xjob-server/config /opt/hikvision/web/components/xdictionary.1/bin/xdictionary-dds/config,另一个进程为jes-agent.1.service,通过CGroup将inotify.py进程作为子进程挂载到jes-agent.1.service进程中
好的,你的问题是如何使用CGroup将带有输入参数的inotify.py进程作为子进程挂载到jes-agent.1.service进程中。在Python2中,你可以使用cgroups模块来进行CGroup的相关操作,同时可以使用subprocess模块来启动进程。
以下是一个简单的示例代码,可以供你参考:
```python
import cgroups
import subprocess
# 创建CGroup
cg = cgroups.Cgroup('mygroup')
# 将带有输入参数的inotify.py进程加入到CGroup中
inotify_params = ['/opt/hikvision/web/components/tomcat85linux64.1/', '/opt/hikvision/web/components/xconfig.1/bin/xconfig-server/config', '/opt/hikvision/web/components/sac.1/bin/web', '/opt/hikvision/web/components/activemq514linux64.1/bin/linux-x86-64', '/opt/hikvision/web/components/rabbitmq.1/bin/rabbitmq-auth/config', '/opt/hikvision/web/components/ls.1/script/license', '/opt/hikvision/web/components/xresmgr.1/bin/xresmgr-rms/config', '/opt/hikvision/web/components/loganalysis.1/bin/loges', '/opt/hikvision/web/components/xjob.1/bin/xjob-server/config', '/opt/hikvision/web/components/xdictionary.1/bin/xdictionary-dds/config']
inotify = subprocess.Popen(['python', 'inotify.py'] + inotify_params, stdout=subprocess.PIPE)
cg.add_task(inotify.pid)
# 将inotify.py作为子进程挂载到jes-agent.1.service进程中
jes_agent = subprocess.Popen(['jes-agent.1.service'], preexec_fn=cg.set_pid)
```
需要注意的是,以上代码仅供参考,具体的实现方式还需要根据你的具体需求进行调整。同时,你需要确保inotify.py和jes-agent.1.service进程都已经启动,并且你需要根据实际情况调整进程的启动参数。
python2 有一个脚本inotify.py,执行时需要有入参,现在给定一个list,如何让这个list作为inotify.py的入参? inotify.py又应该如何接收参数?
在 Python2 中,你可以使用 `subprocess` 模块来执行 `inotify.py` 脚本,并将 list 作为参数传递给该脚本。下面是一个示例代码:
```python
import subprocess
# 定义包含参数的 list
arg_list = ["arg1", "arg2", "arg3"]
# 使用 subprocess 调用 inotify.py 脚本,并将 arg_list 作为参数传递
result = subprocess.check_output(["python", "inotify.py"] + arg_list)
# 打印脚本的输出
print(result)
```
在这个示例中,`subprocess.check_output()` 函数接受一个 list 类型的参数,其中第一个元素是要执行的命令,接下来的元素是该命令的入参。
在 `inotify.py` 脚本中,你可以使用 `sys.argv` 来获取传递给脚本的参数,其中 `sys.argv[0]` 保存的是脚本的名称,`sys.argv[1:]` 则是传递给脚本的参数列表。
以下是一个简单的 `inotify.py` 脚本示例,它将打印传递给它的参数列表:
```python
import sys
# 获取传递给脚本的参数列表
args = sys.argv[1:]
# 打印参数列表
print(args)
```
当你执行上面的调用代码,`inotify.py` 脚本将打印出 `['arg1', 'arg2', 'arg3']`。
阅读全文