[ruby-trunk - Feature #8696][Open] Process.setproctitle

Issue #8696 has been reported by znz (Kazuhiro NISHIYAMA).


Feature #8696: Process.setproctitle

Author: znz (Kazuhiro NISHIYAMA)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:

$0= と同じ機能が$変数を使わずに書けないようなので、
Process.setproctitle を追加するのはどうでしょうか?

Issue #8696 has been updated by kosaki (Motohiro KOSAKI).

方向性としては賛成なのですが($0はぐぐらびりてぃ悪いから暗記しないといけないのがイケてない)、
細かい点をいくつか確認させてください。

$0と同等なら Process.name = “hoge” とかのほうが読みやすいんじゃないの?
Process.setproctitle にする意図は?文字列以外も与えたい? Windowsで動かないと暗にいいたい?
$0は書くだけじゃなくて、読むことも出来たと思うのですがそれは出来なくてもよい?

Feature #8696: Process.setproctitle

Author: znz (Kazuhiro NISHIYAMA)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:

$0= と同じ機能が$変数を使わずに書けないようなので、
Process.setproctitle を追加するのはどうでしょうか?

Issue #8696 has been updated by znz (Kazuhiro NISHIYAMA).

元々 DevelopersMeeting20130727Japan の時の雑談で出た話で、その時も

  • Process.setproctitle
  • Process.name, Process.name=

の両方の案がありました。

setproctitle の理由としては他の Process のメソッドも C API
そのままの名前が多いし、そのあたりのメソッドを使う人はそういうことがわかってるはずなので、C API
に近い名前の方がわかりやすい、という意見だったと思います。

Process.name{,=} の方は、以前にスレッドに名前をつけたいという話があって、そのメソッドとして Thread にも name や
name= を用意するとしたら、対応がとれてわかりやすいという話もありました。

Feature #8696: Process.setproctitle

Author: znz (Kazuhiro NISHIYAMA)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:

$0= と同じ機能が$変数を使わずに書けないようなので、
Process.setproctitle を追加するのはどうでしょうか?

Issue #8696 has been updated by knu (Akinori MUSHA).

getproctitle() というAPIはないので、 Process.setproctitle() でいいんじゃないかと思います。
$0はベタに Process.argv0 でどうでしょう。argv0という名前はTclに先例があります。

$0=でsetproctitle()が呼ばれるのはPerlから引き継いだ仕様だと思いますが、argv[0]を初期値とする$0のsetterがsetproctitle()であるというのは実は対称性がありません。(setproctitle()で設定される文字列の初期値はコマンドライン全体なので)


Feature #8696: Process.setproctitle

Author: znz (Kazuhiro NISHIYAMA)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:

$0= と同じ機能が$変数を使わずに書けないようなので、
Process.setproctitle を追加するのはどうでしょうか?

Issue #8696 has been updated by knu (Akinori MUSHA).

なお、「プロセスの名前」としては*BSDの getprogname(3)/setprogname(3)
も浮かびますが、これはerr(3)によるエラー表示などで使われるものですが、その初期値は File.basename($0)
なので$0の別名としては使えなさそうです。

Feature #8696: Process.setproctitle

Author: znz (Kazuhiro NISHIYAMA)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:

$0= と同じ機能が$変数を使わずに書けないようなので、
Process.setproctitle を追加するのはどうでしょうか?

Issue #8696 has been updated by nobu (Nobuyoshi N.).

Class#nameとかぶるProcess.nameは芳しくないと思います。
Process.setproctitle()の別名ならProcess.title{,=}じゃないでしょうか。

Feature #8696: Process.setproctitle

Author: znz (Kazuhiro NISHIYAMA)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:

$0= と同じ機能が$変数を使わずに書けないようなので、
Process.setproctitle を追加するのはどうでしょうか?

2013/7/30 knu (Akinori MUSHA) [email protected]:

Issue #8696 has been updated by knu (Akinori MUSHA).

getproctitle() $B$H$$$&(BAPI$B$O$J$$$N$G!“(B Process.setproctitle()
$B$G$$$$$s$8$c$J$$$+$H;W$$$^$9!#(B
$0$B$O%Y%?$K(B Process.argv0
$B$G$I$&$G$7$g$&!#(Bargv0$B$H$$$&L>A0$O(BTcl$B$K@hNc$,$”$j$^$9!#(B

$B8=:_$9$G$K(B $PROGRAM_NAME
$B$,$“$k$o$1$G$9$,!”(Bargv0$B$O$=$l$h$jJ,$+$j$d$9$5$,0lCJMn$A$k46$8!#(B
C$B8@8l$OEvA3CN$C$F$k$h$M$H$$$&A0Ds$O$$$$$N$+$J$"(B

getproctitle()$B$H$$$&(BAPI$B$O$J$$$H$$$&$4;XE&$G$9$,!“(BRuby$B$G:G8e$K@_Dj$7$?J8;zNs$r3P$($F$*$/$@$1$J$N$G(B
$B$”$^$j>c32$K$J$k$H$O9M$($F$$$^$;$s!#(B
$B$9$4$$D9$$J8;zNs$rM?$($?;~$K(Bsetproctitle()$BB&$G>!<j$K@Z$j5M$a$k;EMM$,$"$C$?$j$9$k$HIT0lCW$K$J$j$^$9$,(B
$Be$OLdBj$K$J$i$J$$$G$7$g$&!#$=$l$H$b(BFreeBSD$B$N$h$&$JF,$K(Bprefix$B>!<j$K$D$1$k$h$&$J(Bsetproctitle()$B<BAu$r(B
$B?4G[$7$F$$$k!)(B

$0=$B$G(Bsetproctitle()$B$,8F$P$l$k$N$O(BPerl$B$+$i0z$-7Q$$$@;EMM$@$H;W$$$^$9$,!“(Bargv[0]$B$r=i4|CM$H$9$k(B$0$B$N(Bsetter$B$,(Bsetproctitle()$B$G$”$k$H$$$&$N$O<B$OBP>N@-$,$"$j$^$;$s!#!J(Bsetproctitle()$B$G@_Dj$5$l$kJ8;zNs$N=i4|CM$O%3%^%s%I%i%$%sA4BN$J$N$G!K(B

$B$3$l$O(Bargv0$B$,$h$m$7$/$J$$$H$$$&M}M3$N#1$D$K$J$C$F$$$k$H;W$$$^$9!#(B

$B$J$+$@$5$s$N;XE&$7$F$$$k(BClass.name$B$H$N>WFM$O@bF@NO$,$“$C$?$N$G!”(BProcess.title
$B$+(B
Process.program_name $B$N$I$A$i$+$,$$$$$N$G$O$J$$$G$7$g$&$+!#(B

Issue #8696 has been updated by naruse (Yui NARUSE).

znz (Kazuhiro NISHIYAMA) wrote:

元々 DevelopersMeeting20130727Japan の時の雑談で出た話で、その時も

  • Process.setproctitle
  • Process.name, Process.name=

の両方の案がありました。

setproctitle の理由としては他の Process のメソッドも C API
そのままの名前が多いし、そのあたりのメソッドを使う人はそういうことがわかってるはずなので、C API に近い名前の方がわかりやすい、という意見だったと思います。

Process.name{,=} の方は、以前にスレッドに名前をつけたいという話があって、そのメソッドとして Thread にも name や name=
を用意するとしたら、対応がとれてわかりやすいという話もありました。

Thread#name はそりゃそういう名前になるよねって感じなのですが、
Process.name は Process クラスの name になるのがだいぶ違和感あるんですよね。

Feature #8696: Process.setproctitle

Author: znz (Kazuhiro NISHIYAMA)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:

$0= と同じ機能が$変数を使わずに書けないようなので、
Process.setproctitle を追加するのはどうでしょうか?

$B;d$,8@$$$?$+$C$?$3$H$r@0M}$9$k$H!"(B

  1. $0
    $B$N(Bgetter/setter$B$OHsBP>N$G$"$j!"!V(B$0$B$NJLL>$r:n$k!W$H$$$&H/A[$G$=(B
    $B$NOD$_$r0z$-7Q$0$N$O9%$^$7$/$J$$!#$D$^$j!"(B setproctitle()
    $B$9$k(BAPI$B$H(B
    $B%*%j%8%J%k$N(B $0
    $B$rJV$9(BAPI$B$OJL8D$KMQ0U$7!"A0<T$N8F=P$K$h$C$F8e<T$NCM(B
    $B$,1F6A$r<u$1$J$$$h$&$K$9$Y$-!#(B

  2. $BA0<T$O(BC$B$N(BAPI$B>e$O(B setter $B$N$_$J$N$G(B setproctitle
    $B$N$^$^$G$$$$$7!"8e(B
    $B<T$O(B setter $B$J$7$N(B Process.argv0 $B$G$$$$$N$G$O$J$$$+!#(B

$B$3$l$J$iM-$j$+$J$"!#(Bknu$B$5$s<+J,$G%3%_%C%H$7$^$9!)(B

At Tue, 06 Aug 2013 21:05:15 -0400,
KOSAKI Motohiro wrote:

$B$3$l$J$iM-$j$+$J$"!#(Bknu$B$5$s<+J,$G%3%_%C%H$7$^$9!)(B

$B$O$$!"<j85$K=`Hw$G$-$F$$$k$N$G!"0[O@$,$J$1$l$P8e$[$I!#(B

At Sun, 4 Aug 2013 10:01:31 +0900,
KOSAKI Motohiro wrote:

2013/7/30 knu (Akinori MUSHA) [email protected]:

Issue #8696 has been updated by knu (Akinori MUSHA).

$B;d$,8@$$$?$+$C$?$3$H$r@0M}$9$k$H!"(B

  1. $0
    $B$N(Bgetter/setter$B$OHsBP>N$G$“$j!”!V(B$0$B$NJLL>$r:n$k!W$H$$$&H/A[$G$=(B
    $B$NOD$_$r0z$-7Q$0$N$O9%$^$7$/$J$$!#$D$^$j!"(B setproctitle()
    $B$9$k(BAPI$B$H(B
    $B%*%j%8%J%k$N(B $0
    $B$rJV$9(BAPI$B$OJL8D$KMQ0U$7!"A0<T$N8F=P$K$h$C$F8e<T$NCM(B
    $B$,1F6A$r<u$1$J$$$h$&$K$9$Y$-!#(B

  2. $BA0<T$O(BC$B$N(BAPI$B>e$O(B setter $B$N$_$J$N$G(B setproctitle
    $B$N$^$^$G$$$$$7!"8e(B
    $B<T$O(B setter $B$J$7$N(B Process.argv0 $B$G$$$$$N$G$O$J$$$+!#(B

$B$H$$$&46$8$G$9!#(B

1$B$K$D$$$FJdB-$9$k$H!“(B setproctitle() $B$N$J$$4D6-$G$O(B argv
$B$r$$$8$C$F$$$k(B
$B$o$1$G$9$,!”$=$N>l9g$b(B ARGV
$B$O1F6A$r<u$1$^$;$s$7!“F1MM$K>o$K%*%j%8%J%k(B
$B$N(B $0 $B$NCM$rJV$9(BAPI$B$,$”$C$F$$$$$H;W$$$^$9!#(B

getproctitle() $B$H$$$&(BAPI$B$O$J$$$N$G!“(B Process.setproctitle()
$B$G$$$$$s$8$c$J$$$+$H;W$$$^$9!#(B
$0$B$O%Y%?$K(B Process.argv0
$B$G$I$&$G$7$g$&!#(Bargv0$B$H$$$&L>A0$O(BTcl$B$K@hNc$,$”$j$^$9!#(B

$B8=:_$9$G$K(B $PROGRAM_NAME
$B$,$“$k$o$1$G$9$,!”(Bargv0$B$O$=$l$h$jJ,$+$j$d$9$5$,0lCJMn$A$k46$8!#(B
C$B8@8l$OEvA3CN$C$F$k$h$M$H$$$&A0Ds$O$$$$$N$+$J$"(B

ARGV
$B$,$“$k$N$G!”>/$J$/$H$b8!:w$N<j$,$+$j$,$J$$$H$$$&$3$H$O$J$5$=$&!#(B

getproctitle()$B$H$$$&(BAPI$B$O$J$$$H$$$&$4;XE&$G$9$,!"(BRuby$B$G:G8e$K@_Dj$7$?J8;zNs$r3P$($F$*$/$@$1$J$N$G(B

$B$"$^$j>c32$K$J$k$H$O9M$($F$$$^$;$s!#(B

$B$9$4$$D9$$J8;zNs$rM?$($?;~$K(Bsetproctitle()$BB&$G>!<j$K@Z$j5M$a$k;EMM$,$"$C$?$j$9$k$HIT0lCW$K$J$j$^$9$,(B

$Be$OLdBj$K$J$i$J$$$G$7$g$&!#$=$l$H$b(BFreeBSD$B$N$h$&$JF,$K(Bprefix$B>!<j$K$D$1$k$h$&$J(Bsetproctitle()$B<BAu$r(B

$B?4G[$7$F$$$k!)(B

$B$=$&$G$9$M!#IT2D5U$JA`:n$G$“$k$H$$$&$3$H$,8+$($J$/$J$k$H$$$&$N$O7|G0$H(B
$B$7$F$O$”$j$^$9!#(B

$B$7$+$7$=$l$h$j$b!“(B getproctitle()
$B$,$J$$$H$$$&$3$H$O$^$:=i4|CM$r$I$&$9(B
$B$k$+!”%W%m%0%i%$NB>$NItJ,$G(B setproctitle() $B$5$l$?$i$=$NCM$rH?1G$9$Y$-(B $B$+!J<g$K(B Ruby $B$rAH$_9~$s$@%W%m%0%i%$rA[Dj$7$F$$$^$9!K$H$$$&$H$3$m$b9M(B
$B$($kI,MW$,$"$j$^$9$M!#(B

Issue #8696 has been updated by naruse (Yui NARUSE).

Priority changed from Normal to High


Feature #8696: Process.setproctitle

Author: znz (Kazuhiro NISHIYAMA)
Status: Assigned
Priority: High
Assignee: matz (Yukihiro M.)
Category: core
Target version: current: 2.1.0

$0= と同じ機能が$変数を使わずに書けないようなので、
Process.setproctitle を追加するのはどうでしょうか?

Issue #8696 has been updated by naruse (Yui NARUSE).

Category set to core
Status changed from Closed to Assigned
Assignee set to matz (Yukihiro M.)
Target version set to current: 2.1.0

$B$3$NDI2C!"$^$D$b$H$5$s$NN;2r<h$C$F$^$;$s$h$M(B?
core$B%/%i%9$N(BAPI$B$NJQ99$O:#8e$O$^$D$b$H$5$s$NN;2r$rF@$F$+$i$K$7$F2<$5$$!#(B

$B$3$NDs0F$I$&;W$$$^$9$+!)!d$^$D$b$H$5$s(B

Feature #8696: Process.setproctitle

Author: znz (Kazuhiro NISHIYAMA)
Status: Assigned
Priority: Normal
Assignee: matz (Yukihiro M.)
Category: core
Target version: current: 2.1.0

$0= $B$HF1$85!G=$,(B$$BJQ?t$r;H$o$:$K=q$1$J$$$h$&$J$N$G!"(B
Process.setproctitle $B$rDI2C$9$k$N$O$I$&$G$7$g$&$+(B?

Issue #8696 has been updated by matz (Yukihiro M.).

この提案そのものには賛成なんですが、プラットフォーム依存になりそうなので、環境依存、処理系依存が明記されれば。

まつもと ゆきひろ /:|)


Feature #8696: Process.setproctitle

Author: znz (Kazuhiro NISHIYAMA)
Status: Assigned
Priority: High
Assignee: matz (Yukihiro M.)
Category: core
Target version: current: 2.1.0

$0= と同じ機能が$変数を使わずに書けないようなので、
Process.setproctitle を追加するのはどうでしょうか?

Issue #8696 has been updated by knu (Akinori MUSHA).

Status changed from Assigned to Closed

rdocを更新しました。

Feature #8696: Process.setproctitle

Author: znz (Kazuhiro NISHIYAMA)
Status: Closed
Priority: High
Assignee: knu (Akinori MUSHA)
Category: core
Target version: current: 2.1.0

$0= と同じ機能が$変数を使わずに書けないようなので、
Process.setproctitle を追加するのはどうでしょうか?

Issue #8696 has been updated by knu (Akinori MUSHA).

Assignee changed from matz (Yukihiro M.) to knu (Akinori MUSHA)

プラットフォーム依存についてはすでに書いてありますが、
サポートされない環境でも例外は発生しない旨、追記しておきます。

Feature #8696: Process.setproctitle

Author: znz (Kazuhiro NISHIYAMA)
Status: Assigned
Priority: High
Assignee: knu (Akinori MUSHA)
Category: core
Target version: current: 2.1.0

$0= と同じ機能が$変数を使わずに書けないようなので、
Process.setproctitle を追加するのはどうでしょうか?