Guest User

Untitled

a guest
Jul 20th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5.  
  6. our $screen_path = "/usr/local/bin/screen";
  7. our $irssi_path = "/usr/local/bin/irssi";
  8. our %valid_status = (
  9. Attached => 1,
  10. Detached => 1,
  11. Multi => 1,
  12. );
  13.  
  14. my %screens = ();
  15.  
  16. my $syscmd = "$screen_path -list";
  17. open(F, "$syscmd |");
  18. foreach my $line (<F>)
  19. {
  20. chomp $line;
  21. if($line =~ /^\s+(\d+\.\S*\.\S+)\s+\(([^)]+)\)$/)
  22. {
  23. $screens{$1} = $2;
  24. }
  25. }
  26. close F;
  27.  
  28. my $has_screen = 0;
  29. while(my ($key, $val) = each %screens)
  30. {
  31. ++$has_screen and last if $valid_status{$val};
  32. }
  33.  
  34. $syscmd = "$screen_path -wipe; $screen_path -d -m -U $irssi_path";
  35. system $syscmd unless $has_screen;
Add Comment
Please, Sign In to add comment