代码改变世界

了解Unix进程(2)

2013-11-06 10:28  zoo-code  阅读(185)  评论(0编辑  收藏  举报

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

# process name
puts $PROGRAM_NAME

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

 

 

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 $?查看进程返回值:

 

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

 

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

puts "Exit!"
exit! # exit 1

 

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

at_exit {
    puts "Last!"
}

exit -1

 

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

# exit a process unsuccessfully
puts "exit 1"
abort

 

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

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

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