[R-SIG-Mac] [R] How to interrupt an R process that hangs

Matthew Keller mckellercran at gmail.com
Mon Mar 15 22:10:03 CET 2010


Hi all,

Thanks for the responses. Ted - thank you for your help. I had to
laugh. I'm no computer guru, but I do know unix well enough to know
not to type "<PID>". But then again, my original code did contain a
matrix with >>2^31-1 elements, so maybe your assumption was reasonable
;)

Anyway, all your kill statements merely kill R, script included, which
doesn't really do what I'd like.

Thus, summary of responses:

Question:
"How do I interrupt an R process that's taking too long?"

Answer:
"You don't. Kill R. And don't make mistakes."

Matthew



On Mon, Mar 15, 2010 at 2:49 PM, Ted Harding
<Ted.Harding at manchester.ac.uk> wrote:
> [Though I'm not using a Mac, OS X is a Unix variant and should
> have the commands used below installed]
>
> Did you *literally* do
>  kill -s INT <PID>
> without substituting the R PID for "<PID"? If so, then here's a tip.
> In Mac console, do
>
>  ps aux | grep R
>
> On my Linux machine this currently responds with (amongst some
> irrelevant lines):
>
> ted  8625  0.0  3.2  41568 34096 pts/6  S+ Mar13 0:07
>  /usr/lib/R/bin/exec/R --no-save
>
> showing that the PID of the R process is 8625. Then you can do
> whatever corresponds to
>
>  kill -s INT 8625
>
> (replacing "8625" with what you get from ps). However, when I
> just tried it, it didn't work for me either. So I changed the
> Signal from "INT" to "HUP", and this time it did work. Maybe
> try this instead?
>
> Other ways of using 'kill' include
> (a) Use the signal number (1 for HUP, 2 for INT) like
>
>  kill -1 8625    or     kill -2 8625
>
> (b) Don't search for the numeric Process ID (PID) but kill it
>    by name ('killall' command):
>
>  killall -1 R    or    killall -2 R
>
> However, this will kill every running instance of R (if you
> two or more running simultaneously), and you may not want that!
>
> Hoping this helps,
> Ted.
>
>
>
> On 15-Mar-10 20:20:29, Matthew Keller wrote:
>> Hi all,
>>
>> Thanks Simon and Duncan for the help. Sorry to be dense, but I'm still
>> unsure how to interrupt such processes. Here's an example:
>>
>> for (i in 1:100000){
>>       a <- matrix(rnorm(100000*100000),ncol=100000)
>>       b <- svd(a)     }
>>
>> If you run this, R will hang (i.e., it's a legitimate execution, it
>> will just take a really long time to execute). The most obvious
>> solution is to write code that doesn't do unintended things, but
>> that's not always possible. Is there a way to interrupt it? I tried:
>>
>> kill -s INT <PID>
>>
>> and at least on Mac it had no effect. Thanks again,
>>
>> Matt
>>
>>
>>
>> On Mon, Mar 15, 2010 at 1:19 PM, Simon Urbanek
>> <simon.urbanek at r-project.org> wrote:
>>>
>>> On Mar 15, 2010, at 14:42 , Adam D. I. Kramer wrote:
>>>
>>>> +1--this is the single most-annoying issue with R that I know of.
>>>>
>>>> My usual solution, after accomplishing nothing as R spins idly for a
>>>> couple
>>>> hours, is to kill the process and lose any un-saved work.
>>>> Â_save.history()
>>>> is
>>>> my friend, but is a big delay when you work with big data sets as I
>>>> do, so
>>>> I
>>>> don't run it after every command.
>>>>
>>>> I have cc'd r-help here, however, because I experience this problem
>>>> with
>>>> non-OSX R as well...when I run it in Linux or from the OSX
>>>> command-line (I
>>>> compile R for Darwin without aqua/R-framework), the same thing
>>>> happens.
>>>>
>>>> Is there some way around this? Is this a known problem?
>>>>
>>>
>>> "Hanging" for a long period of time is usually caused by poorly
>>> written
>>> C/Fortran code. You can always interrupt R as long as it is in the R
>>> code.
>>> Once you load a package that uses native code (C/Fortran/..) you have
>>> to
>>> rely on the sanity of the developer to call R_CheckUserInterrupt() or
>>> rchkusr() often enough (see 6.12 in R-ext). If you have some
>>> particular
>>> package that does not do that, I would suggest alerting the author. By
>>> definition this requires cooperation from authors, because
>>> interrupting
>>> random code forcefully (as it was possible many years ago) creates
>>> leaks and
>>> unstable states.
>>>
>>> Cheers,
>>> Simon
>>>
>>>
>>>
>>>> Google searching suggests no solution, timeline, or anything, but the
>>>> problem has been annoying users for at least twelve years:
>>>> http://tolstoy.newcastle.edu.au/R/help/9704/0151.html
>>>>
>>>> Cordially,
>>>> Adam
>>>>
>>>> On Mon, 15 Mar 2010, Matthew Keller wrote:
>>>>
>>>>> HI all,
>>>>>
>>>>> Apologies for this question. I'm sure it's been asked many times,
>>>>> but
>>>>> despite 20 minutes of looking, I can't find the answer. I never use
>>>>> the GUI, I use emacs, but my postdoc does, so I don't know what to
>>>>> tell her about the following:
>>>>>
>>>>> Occasionally she'll mess up in her code and cause R to hang
>>>>> indefinitely (e.g., R is trying to do something that will take
>>>>> days).
>>>>> In these situations, is there an option other than killing R (and
>>>>> the
>>>>> work you've done on your script to that point)?
>>>>>
>>>>> Thank you,
>>>>>
>>>>> Matthew Keller
>>>>>
>>>>>
>>>>> --
>>>>> Matthew C Keller
>>>>> Asst. Professor of Psychology
>>>>> University of Colorado at Boulder
>>>>> www.matthewckeller.com
>>>>>
>>>>> _______________________________________________
>>>>> R-SIG-Mac mailing list
>>>>> R-SIG-Mac at stat.math.ethz.ch
>>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>>>
>>>>
>>>> _______________________________________________
>>>> R-SIG-Mac mailing list
>>>> R-SIG-Mac at stat.math.ethz.ch
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>>
>>>>
>>>
>>>
>>
>>
>>
>> --
>> Matthew C Keller
>> Asst. Professor of Psychology
>> University of Colorado at Boulder
>> www.matthewckeller.com
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> --------------------------------------------------------------------
> E-Mail: (Ted Harding) <Ted.Harding at manchester.ac.uk>
> Fax-to-email: +44 (0)870 094 0861
> Date: 15-Mar-10                                       Time: 20:49:57
> ------------------------------ XFMail ------------------------------
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



-- 
Matthew C Keller
Asst. Professor of Psychology
University of Colorado at Boulder
www.matthewckeller.com



More information about the R-SIG-Mac mailing list