了解Unix进程(2)

时间:2023-11-22 10:19:08

1. 每个进程都有一个名字,crusher 可以得到:

# process name
puts $PROGRAM_NAME 10.downto(1) do | num |
$PROGRAM_NAME = "Process: #{num}"
puts $PROGRAM_NAME
end

了解Unix进程(2)

2.进程的环境变量:

# 进程的环境变量
puts ENV['EDITOR'] # 非vim没有输出,我用的sublime
puts ENV.has_key?('PATH')
puts ENV.is_a?(Hash) gets

3.进程的命令行参数:

p ARGV # 打印命令行参数

 使用ruby filename.rb foo bar 会得到一个数组

4.使用exit结束进程:

puts "Hello"
exit -1

在Linux上可以使用 echo $?查看进程返回值:

了解Unix进程(2)

返回-1 但是输出了255 看来进程返回值是一个无符号8位整型的。

5.使用exit! 可以返回1 一般是程序没有正确返回的结果

puts "Exit!"
exit! # exit 1

了解Unix进程(2)

6.使用at_exit 可以得到一些退出信息:

at_exit {
puts "Last!"
} exit -1

了解Unix进程(2)

7.使用abort也可以推出程序,一般指没有正常返回的程序:

# exit a process unsuccessfully
puts "exit 1"
abort

了解Unix进程(2)

8.abort 会再程序结束exit前返回,最后的挣扎么?

puts "abort will print message before the exit to the STDERR"

at_exit {
puts "After abort"
}
abort "Print it first!"

了解Unix进程(2)