# Bash脚本执行Java后父进程切换为Bash父进程
在Linux系统中,Bash脚本是一种常见的脚本语言,而Java则是一种面向对象的编程语言。有时候我们需要在Bash脚本中执行Java程序,但执行完Java程序后,发现父进程切换为了Bash的父进程。本文将介绍这种现象的原因,并提供一种解决方案。
## 现象描述
假设我们有一个名为`script.sh`的Bash脚本,其中包含以下内容
原创
2024-01-27 05:56:48
63阅读
在登入su - oracle 忽然报两条错误
-bash: export command not found
-bash: export command not found
查找了半天参数,终于在.bash_profile
发现“export”拼写有问题 ,终于解决,做工作一定要细心
export TMP=/tmp
export TMPDIR=$TMP
exp
原创
2012-04-12 22:59:06
5943阅读
export 后面存在空格,去掉即可
原创
2023-05-18 17:16:50
114阅读
在Linux系统中,export进程是一个非常常见的操作。export命令主要用于将环境变量从当前shell进程传递给子进程。在Linux系统中,环境变量是一种存储在系统中的具有特定值的变量,可以在不同的进程之间共享和传递。
当我们在命令行中执行export命令时,我们实际上是在告诉操作系统将指定的环境变量传递给将要执行的命令或程序。这对于在不同的进程之间传递信息非常有用。
在Linux系统中
原创
2024-04-28 10:19:00
21阅读
子进程和父进程在父进程中通过fork()函数可以创建子进程,如果返回值==0,为子进程;否则是为父进程。子进程得到的除了代码段是与父进程共享以外,其他所有的都是父进程的一个副本,子进程的所有资源都继承父进程,得到父进程资源的副本,但是二者并不共享地址空间。两个是单独的进程,继承了以后二者就没有什么关联,子进程单独运行。采用写时复制技术。关于文件描述符:继承父进程的文件描述符时,相当于调用了dup函
转载
2023-06-12 18:45:52
262阅读
在bash中,使用后台任务来实现任务的“多进程化”。在不加控制的模式下,不管有多少任务,全部都后台执行。也就是说,在这种情况下,有多少任务就有多少“进程”在同时执行。我们就先实现第一种情况:实例一:正常情况脚本#!/bin/bashfor ((i=0;i<5;i++));do{sleep 3;echo 1>>aa && echo "done!" } d
转载
2018-04-13 10:22:00
240阅读
2评论
from multiprocessing import Process
import time
##从程序中启动进程的两种方式:
def task(i):
print('%s start!'% i)
time.sleep(2)
print('%s stop!' % i)
#方法一:
if __name__ == '__main__': #在window系统
转载
2023-05-27 09:30:38
191阅读
Your version is: /bin/bash: java: command not found. ============================================
PLATFORM_VERSION_CODENAME=AOSP
PLATFORM_VERSION=AOSP
TARGET_PRODUCT=gener
父子进程1. 退出关系子进程继承了父进程的内容父子进程有独立的地址空间, 互不影响若父进程先结束
子进程成为孤儿进程,被init进程收养 ——》 子进程变成后台进程
若子进程先结束 ——》 父进程如果没有及时回收,子进程变成僵尸进程2. 执行位置fork 创建了子进程后,子进程从何处执行?
子进程从fork的下一条语句开始执行
父子进程谁先执行?
不确定,看操作系统先调度谁3. 进程回收函数 ——
转载
2023-08-04 14:27:44
410阅读
fork创建一个子进程。SYNOPSIS#include <unistd.h>
pid_t fork(void);RETURN VALUE 一旦调用成功父进程中的 fork 会返回子进程 PID,而子进程的 fork 会返回0;调用失败父进程中 fork 返回-1,没有子进程创建出来。【注意】:不是 fork 函数能返回两个值,而是 fork 后,fork 函数变为两个,父子需各自返
转载
2023-08-21 14:39:04
185阅读
关于fork的详细解释他创建一个原有进程的精确副本,包括所有的文件描述符,寄存器等全部内容。在fork之后,原有的进程及其副本(父与子)就分开了。在fork时,所有的变量具有一样的值,虽然父进程的数据被复制用以创建子进程,但是其中一个的后续变化并不会影响到另一个,两个进程就是独立个体,各自运行,互不干扰,父子进程谁先执行不由fork决定,而是由系统当前环境和进程调度算法决定,所以程序出来结果的顺序
转载
2023-07-06 11:13:20
175阅读
父进程 僵死进程 init进程
父进程先终止:UNIX系统保证每个进程都有一个父进程,若父进程比子进程先终止,则该父进程的所有子进程的父进程都改变为init进程。我们称这些进程由init进程领养。其执行顺序大致如下:在一个进程终止时,内核逐个检查所有活动进程,以判断它是否是正要终止的进程的子进程,如果是,则该进程的父进程ID就更改为1(init进程的ID
转载
2023-06-12 18:41:02
312阅读
父进程和子进程子进程是父进程的复制品Unix/linux系统中的进程创建是这样的,理解起来有点绕。父进程先执行fork()系统调用,这个调用的结果是系统中多出了一个跟父进程内容完全一样的进程,这个新进程被称为子进程,当然该进程的PCB中父进程指针是指向第一个进程的。前后两个进程各自有自己的地址空间,形式上有点像把一个文件拷贝了一个副本。虽然资源也相互独立,但拷贝时父进程执行过程已生成的数据,子进程
转载
2023-06-12 18:45:12
319阅读
1.父进程创建多个并列的子进程a-->[a1,a2,a3,a4......] 如父进程创建四个子进程,用一个for循环,父进程用来创建子进程,子进程被创建后执行自己的任务。#define NR 4
for(i=0;i<4;i++)
{
/child process
if(pid==-1) error;
//子进程和父进程的分道口,使父子进程
转载
2023-07-07 15:15:17
155阅读
函数名:forkfork,创建一个子进程包含文件:#include <unistd.h>函数原型:pid_t fork(void);返回值:返回两次PID成功,在父进程中返回子进程的PID(非负数),在子进程中返回0。失败,父进程中返回-1,没有创建子进程。实例:int main()
{
int PID=0;
int fork_r=0;
转载
2023-12-19 21:52:24
59阅读
编码实现进程的创建,父进程输出进程号和“I am parent”提示信息; 子进程输出子进程号和”I am son”提示信息。注意:要在父进程中sleep,等待子进程运行结束,防止父进程先于子进程退出。用到的函数:fork()、getpid()、getppid()1)fork函数当程序调用fork函数时,系统会创建新的进程并为其分配资源;然后,会将原来进程的相关内容全部复制到新的进程中。fork(
转载
2023-05-30 16:46:47
188阅读
第一节:进程管理一、进程的概念 程序: 静态 (数据结构+算法) 进程: 程序的运行状态,动态的(一个程序可能有多个进程) 线程: 进程中执行任务最小单元 进程在运行过程中可能会产生新的进程,进程
转载
2024-04-01 06:57:12
157阅读
Node 是一个 Node是基于Chrome V8引擎开发的能使JavaScript在服务器端运行的运行时环境。由于 js 的特性,所以 Node 默认也是单线程的,无法充分利用多核CPU。适用于IO密集型,但对于 CPU 密集型的应用,因为需要长时间占用 CPU,会导致其他的请求处于阻塞状态,所以对于 CPU 密集型的应用,需要特殊考虑。当然,Node 也给我们提供了一些 API,用于
转载
2024-02-14 20:05:14
120阅读
1 exec builtin 不创建子shell,在原进程的上启动新的脚本,但是它会把老shell的环境清理掉,所以,它从原shell中什么也不继承,在一个干净的环境中执行新的脚本。执行完之后退出当前的shell。 2 source builtin 不创建子shell,在原进程上执行source的脚
转载
2018-03-27 12:41:00
196阅读
2评论
1. 在程序设计时,某一个具体的功能模块可以通过函数或是线程等不同的形式来实现。对于同一进程而言,这些函数、线程都是存在于同一个地址空间下的,而且在执行时,大多只对与其相关的一些数据进行处理。如果算法存在某种错误,将有可能破坏与其同处一个地址空间的其他一些重要内容,这将造成比较严重的后果。为保护地址空间中的内容可以考虑将那些需要对地址空间中的数据进行访问的操作部
转载
2009-04-01 21:11:21
851阅读