Linuxのターミナルで、別プロセスとしてプログラムを実行したいのですが、方法が分かりません。

実行したプログラムの終了を待たない、という意味です。

Windowsのコマンドプロントにおける、

start "" プログラム名

に当たる処理です。

ご存知の方がおられましたら、お教え頂けないでしょうか。

A 回答 (3件)

最後に「&」をつけて実行するとか?

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お教え頂いた方法で出来ました。

大変助かりました。本当にありがとうございました。

お礼日時:2017/07/10 16:27
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

テストしてみたのですが、ちょっと求めている動作とは違うようでした。

情報提供を本当にありがとうございました。

お礼日時:2017/07/10 16:24

別のターミナルを開くはダメなの?

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

現状はそうしているのですが、そのような作業が多く、手間になってきたので、どうにかしたいなと思い質問させて頂きました。

お礼日時:2017/07/10 16:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Qアンフォーマットって?

「DVD-RWはアンフォーマット済みです。」と言うことは「DVD-RWは初期化済みです。」と同じことですか?
またPCでDVD-RWをアンフォーマットすることが出来るならその方法を教えてください。おバカさんなので単純明快に教えていただけるとうれしいです。私のPCのOSはWINDOS7です。

Aベストアンサー

「アンフォーマット」は、「初期化されていない」という意味となります。
初期化したいのであれば、ドライブにDVDを入れ、「スタート」→「コンピューター」からDVDの入っているドライブを選択し、マウス右クリックで出てくるメニューから「フォーマット」を実行すると良いです。

QCentOS ログインできない

CentOS 7でパスワードは合っているのにログインできないという現象が時々起きます。
どうしたら対処できるでしょうか?

Aベストアンサー

ログインできないとは、どんなエラーが出るのでしょう。
IDとパスワードで大文字小文字間違えてませんかね。
CapsLockがかかってたりとかで。

Q会社で使用するPCのメモリ

貿易事務をしています。
会社で使用しているPCのメモリが2ギガです。
エクセルやGoogle Chrome、アウトルックは常に立ち上げています。
ワードも頻繁に使います(ワードは使い終えたらすぐ閉じます)。
PCがかなり重く、動作が遅くてつらいです。
会社に言いましたが、11月にPCの入れ替えをするのでそれまで待ってほしいと言われました。
社会人になってこれほどまでに動作の遅いPCをあてがわれたのは初めてです。

質問は、会社のPCで2ギガって普通なのでしょうか?
今までメモリとか気にしたことなかったのでよくわかりません。
メモリ以外で何か動作が遅くなる原因あるのですか?
遅いしすぐに固まります。スクロールしようとするだけで固まったりします。

Aベストアンサー

会社によって違うので一概に何とも言えません。が、メモリ2GBでは少ないような気がします。
Windows7をクリーンインストールした状態、excel word使用ででメモリ2GBならまだいけるかもしれません。
CPUやHDDが違いますが、実際メモリ2GBで使用していました。イントラのみの使用でしたが。多分Google Chromeを使用したらイライラしていたかもしれません。

パソコンは使っているうちに知らず知らず遅くなります。どうしようもありません。
パソコンが遅くなる原因はメモリだけではなく、CPU、HDD、使用しているソフトによります。トータルバランスが必要です。
11月まで我慢して使ってくださいね。

私的にはメモリは最低4GB、できれば8GBは欲しいです。CPUも最低でもcore i3は欲しいです。購入担当の方にそれとなく言ってみてはいかがでしょうか。

CPU:core i3
Memory:8GB
SSD 128GB
と言えば通じると思います。

Qシェルスクリプトで一括作成したユーザーのパスワードが使えません

下記のようなシェルスクリプトを使ってユーザーを一括登録しました。
ユーザーのフォルダが作成されました。/etc/passwdと/etc/shadowには追加されています。
しかし、作成したユーザーでログインしようとすると、「パスワードが違います。」とメッセージが出てログインできません。
下のスクリプトのパスワード作成の方法が違っていて、予想もしないようなパスワードが作成されてしまっているのでしょうか。
それとも、パスワードを有効にする処理を追加しなければいけないのでしょうか。
もし、パスワードを有効にする処理が必要なら、どのようにしたらいいのでしょうか。
どなたか、お知恵を拝借できないでしょうか。お願いします。

シェルスクリプトの内容
#!/bin/bash

FILE_U="/home/samba/mail_add.txt"
FILE_P="/etc/passwd"

newusers $FILE_U

for line in `cat $FILE_U`
do
user_name=`echo $line | cut -d ':' -f 1`
pass=`echo $line | cut -d ':' -f 2`
txt=`cat $FILE_P | grep -e "^$user_name:"`
user_id=`echo $txt | cut -d ':' -f 3`
group_id=`echo $txt | cut -d ':' -f 4`
home_dir=`echo $txt | cut -d ':' -f 6`
##パスワード生成
PASSWORD=`perl -e "print(crypt('${pass}', 'a5'));"`
useradd -u ${user_id} -g ${group_id} -d ${home_dir} -m -p ${PASSWORD} ${user_id}
cp -rf /etc/skel/* $home_dir/
chown -R $user_id $home_dir
chmod 711 $user_id $home_dir
chgrp -R $group_id $home_dir
done

/etc/passwdの内容
t-hayashi3109:x:1002:1002:t-hayashi3109:/home/t-hayashi3109:/bin/bash
t-fujihara3114:x:1003:1003:t-fujihara3114:/home/t-fujihara3114:/bin/bash
t-takejima423:x:1004:1004:t-takejima423:/home/t-takejima423:/bin/bash
n-kishita999:x:1005:1005:n-kishita999:/home/n-kishita999:/bin/bash
y-kawase270:x:1006:1006:y-kawase270:/home/y-kawase270:/bin/bash

/etc/shadowの内容
t-hayashi3109:$6$IMrX/4SsD4$J0MTnXOhBR3HWfmtdptRkue/wmaWNrnx4lsahchwxBZIVDJvew3XHYXzi89o/ds18AmiTi9WRg4TJhXH66LMG1:17218:0:99999:7:::
t-fujihara3114:$6$cF90/Zk/sE43sq$I/c5IJWdIleNCjQp13uLyn/eHWxQMfZNjyLE7bjfkGswdb.q46VvqV8uAXzIZUdhc8zJW9BSnhrMc.eBIvdyP0:17218:0:99999:7:::
t-takejima423:$6$b0I4T4EbexUig2$0ouOYWtnPAZMz1YKNLrOsyG1RYkJhSS1OnSvkdIR97Cr0d5JOpM3Dg9F.MfVF957QPmuFgmE8N9avPx2XChB31:17218:0:99999:7:::
n-kishita999:$6$eAlJ9dMM$Mt2tL.TqJ/A0cXk3eAs/5ids.6iDtcy339YNRacEZZcfaMUIEcUkRcXoD..vw0quA1ezQlQbhxL5sXmmGTGYc.:17218:0:99999:7:::
y-kawase270:$6$hw44olqmQE/u2$2j9Sit5Bgr3XgYcVETyG4ahzEYQ5WHJgN9PrYoNYqieFbyMmt1qCuSunuZ8Mwo35rln7nTY3U7j8PGXyD33XJ/:17218:0:99999:7:::

下記のようなシェルスクリプトを使ってユーザーを一括登録しました。
ユーザーのフォルダが作成されました。/etc/passwdと/etc/shadowには追加されています。
しかし、作成したユーザーでログインしようとすると、「パスワードが違います。」とメッセージが出てログインできません。
下のスクリプトのパスワード作成の方法が違っていて、予想もしないようなパスワードが作成されてしまっているのでしょうか。
それとも、パスワードを有効にする処理を追加しなければいけないのでしょうか。
もし、パスワード...続きを読む

Aベストアンサー

>chmod: `t-hayashi3109' にアクセスできません: そのようなファイルやディレクトリはありません

に関しては、
>chmod 711 $user_name '/home/'$user_name'/'
が誤りです。
最初の$user_nameは不要です。

>pass=`echo $line | cut -d ':' -f 2`
>##指定されたパスワードを渡す
>echo $pass | passwd --stdin $user_name

恐らく不要です。
/etc/login.defsで
ENCRYPT_METHOD SHA512
になっていれば、newusersコマンドで作成されるパスワードハッシュはSHA512になっていると思われます。
# /etc/shadowの第2フィールドが$6$になっているかと。

>[root@mailsv02 ~]# su t-hayashi3109
>: そのようなファイルやディレクトリはありません

rootからのsuだとパスワードなしでも通るので、確認には不向き…かと思われます。

1つ前の質問で改行コードについて確認しましたけど…その辺りどうです?
ちなみに、それぞれ改行コードを変えているとfileコマンドで下記の様な結果になります。
[user@localhost ~]$ file mail_add_CRLF.txt
mail_add_CRLF.txt: ASCII text, with CRLF line terminators
[user@localhost ~]$ file mail_add_LF.txt
mail_add_LF.txt: ASCII text

CRLFがWindowsで標準に使われる改行コード、LFがLinuxで標準に使う改行コードです。
/home/samba
ということなので、mail_add.txtはWindowsで編集してsambaで転送したのではありませんか?
そうすると、ユーザのシェル指定が"/bin/bash"ではなく"/bin/bash\r"(\rはCR)になります。
# FTPのASCIIモード以外では変換してくれませんので、Windowsのエディタで改行コードをLFに指定するか、Linuxに移した後で改行コードの変換が必要です。
で、シェルが"/bin/bash\r"の場合に…
>[user@localhost ~]$ su - t-hayashi3109
>パスワード:
>: そのようなファイルやディレクトリはありません
となりました。

[root@localhost ~]# file /etc/passwd
/etc/passwd: ASCII text, with CRLF, LF line terminators
ということで、/etc/passwdがCRLF混じりのファイルになっているかと。

trコマンドで改行コード中のCRは削除できるので、それで置き換える…という方法で回避できるかと思われます。
[root@localhost ~]# tr -d \\r < /etc/passwd > /etc/passwd1
[root@localhost ~]# cp /etc/passwd1 /etc/passwd
cp: `/etc/passwd' を上書きしますか? y
のように一時ファイルに書き出してから更新する…とか。
# リダイレクトでやる場合は『入力ファイル』と『出力ファイル』を同じにすると問題が発生する場合があるのでご注意を。
http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/crlf.html

>chmod: `t-hayashi3109' にアクセスできません: そのようなファイルやディレクトリはありません

に関しては、
>chmod 711 $user_name '/home/'$user_name'/'
が誤りです。
最初の$user_nameは不要です。

>pass=`echo $line | cut -d ':' -f 2`
>##指定されたパスワードを渡す
>echo $pass | passwd --stdin $user_name

恐らく不要です。
/etc/login.defsで
ENCRYPT_METHOD SHA512
になっていれば、newusersコマンドで作成されるパスワードハッシュはSHA512になっていると思われます。
# /etc/shadowの第2フィ...続きを読む

QLinuxで仮想環境を構築できない。

Virtual boxを使用して、仮想環境を構築しようと考えているのですが、出来ませんでした。
下記の手順で、どこが間違っているか教えてください。
1.virtual boxをインストールする。ディレクトリ E\virtualbox
Eは、外付けのHDDです。
2.ubuntu-ja-12.04-desktop-i386をE:にインストール
3.virtual boxを開き、新規作成、名称ubuntu12.04 OS:linux メモリーサイズ900MB 可変サイズ:
4.ストレージ、コントローラーIDEの箇所に、ubuntu12.04のISOイメージを指定
5.起動、

5以降で、確か、vhdかdiskの選択画面で、vhdを指定
すると、真っ暗な画面に、キャプチャの説明が入り、それを閉じると
FATAL:No bootable medium found! System halted.
というエラー表示です。

こちらを解決しようとしているのですが、出来ません。
解決方法を教えてください。

Aベストアンサー

『ISOを作るソフトで、ubuntu-ja-12.04-desktop-i386のISOイメージを作成』の部分で失敗していると思います。
Linuxのインストールイメージファイルは、普通にインターネットから取得する場合、取得した時点で(ブータブルな)ISOファイルですので、加工は必要ありません。
ヘタな加工を行うと、ISOファイル一つだけを含むブータブルでないISOファイルを作るのがオチです。

あとUbuntuのバージョンですが、12.04はこの4月でサポートが切れるので、今からやるならせめて14.04にしましょう。CPUが64bit対応なら、64bitでも負荷の差は大してないので16.04にしておくのも手です。
日本語版ISOの所在 https://www.ubuntulinux.jp/download/ja-remix

QCのプログラムに無性にイライラするのはおかしいですか?

CQ出版のインタフェース 2017-5 の記事のプログラム例に
for( i=0; i<256; i++){
 for( y =0; y < Y; y++ ){
  for( x = 0; x < X; x++){
   p[0] = img -> imageData[img->widthStep* y + x*3 ]; //B(青色)
   if(p[0]==i){hn[i]++;}
  }
 }
}
がありました。このリストを見て、無性にイライラするのは私だけでしょうか?

なぜ、i,y,x の3重のループで処理しないといけないのか、y,xの2重ループで十分ではないかと思います。

for( y =0; y < Y; y++ ){
 for( x = 0; x < X; x++){
  p[0] = img -> imageData[img->widthStep* y + x*3 ];  //B(青色)
  hn[ p[0] ]++;
 }
}

3重にするならせめて、y,x,i の順にしてp[0]への代入は1回で済ませればと思います。

for( y =0; y < Y; y++ ){
 for( x = 0; x < X; x++){
  p[0] = img -> imageData[img->widthStep* y + x*3 ];  //B(青色)
  for( i=0; i<256; i++){
     if(p[0]==i){hn[i]++;}
  }
 }
}

最近のコンパイラの最適化では、私の書いたようなコーディング(修正?)は無意味なのでしょうか?

CQ出版のインタフェース 2017-5 の記事のプログラム例に
for( i=0; i<256; i++){
 for( y =0; y < Y; y++ ){
  for( x = 0; x < X; x++){
   p[0] = img -> imageData[img->widthStep* y + x*3 ]; //B(青色)
   if(p[0]==i){hn[i]++;}
  }
 }
}
がありました。このリストを見て、無性にイライラするのは私だけでしょうか?

なぜ、i,y,x の3重のループで処理しないといけないのか、y,xの2重ループで十分ではないかと思います。

for( y =0; y < Y; y++ ){
 for( x = 0; x < X; x++)...続きを読む

Aベストアンサー

利点を考えてみました


これを並列処理したときに
スレッド0: hn[0] に p[0] = 0 をカウント
スレッド1: hn[1] に p[0] = 1 をカウント
...
とすれば、
・img -> imageData は読み出すだけなので衝突しない
・hn[i] でアクセスする領域は、スレッド毎に i が違うので、同じ箇所に書き込まれることはない。
となり、排他処理が不要となります。
(もちろん、x,y,i,p[0]はスレッドでローカルな変数とします)

ただ、並列処理のオーバーヘッドや同時並列処理数等を考えると、こんな並列処理はしない方が効率的です。


あるいは、hn[]がシークに時間がかかる領域の場合、
hn[p[0]) で毎回違う位置を探しに行って、その時間が無視できないほどだったら、
先にhnを決めてしまった方が速くなるでしょう。

こちらも、非現実的です。

Qプログラムの改良

人の作ったプログラムを改良することになりました。
Visual C++ は初めてですが、CやC++は一通り勉強しています。

そこで、いろいろ調べているのですが、
例えば
「MFCは使わずに,Win32API SDKを用いた方法」
などという説明があります。

自分が対応しているプログラムが、そのどちらであるか、あるいはほかの方法で作られているか
というのはどうしたら分かるのでしょうか?

Aベストアンサー

No1です
私はC++は全然触ったこと無いので
あまり的確な回答は期待しないでくださいね

Q1.いいんじゃないでしょうか?
MSDNのOnPoint↓
https://msdn.microsoft.com/ja-jp/library/01c9aaty.aspx

OnPointクラス(Cwndクラス)
https://msdn.microsoft.com/ja-jp/library/1xb05f0h.aspx
このページの一番最初に
「Microsoft Foundation Class ライブラリにあるすべてのウィンドウ クラスの基本機能が用意されています。」と書いてありますから
そういうことですね

Q2.なんでもいいと思いますけど
そもそもあなたが対応するプログラムが
きちんとWin32のみで、もしくはMFCのみで書かれているとは限らないですからね
適当に作られて、両方が混在している可能性だってありますし

Q3.そこからですか
そこは調べればすぐ出てくるかと思いますが
MFCというのはWin32をラッピングしたものです

Q4.作った本人に聞く
仕様書とかがあるならそれを見る

No1です
私はC++は全然触ったこと無いので
あまり的確な回答は期待しないでくださいね

Q1.いいんじゃないでしょうか?
MSDNのOnPoint↓
https://msdn.microsoft.com/ja-jp/library/01c9aaty.aspx

OnPointクラス(Cwndクラス)
https://msdn.microsoft.com/ja-jp/library/1xb05f0h.aspx
このページの一番最初に
「Microsoft Foundation Class ライブラリにあるすべてのウィンドウ クラスの基本機能が用意されています。」と書いてありますから
そういうことですね

Q2.なんでもいいと思いますけど
そもそもあなたが...続きを読む

Qプログラムエラー

大学で情報システムの勉強をしているのですが、テスト工程におけるエラーは論理エラーが一番多いのですか?もしそうだとして、なぜ一番多いのでしょうか?人為的なミスが原因で起こると習いましたが、構文エラーも人為的な入力ミスで起こりますよね?

Aベストアンサー

>>テスト工程におけるエラーは論理エラーが一番多い

一番多いのはケアレスミス、つまりウッカリミスです。
1とiの間違い、0とoの間違い、;と:の間違い、.と,の間違い、変数の綴りミス、変数のクリアミスなど。

ロンリミスは直ぐに発見できるが、ケアレスミスは発見に時間がかかる。

特に当事者が発見するのは相当難しい(そう思い込んでいるから)。

Qプログラムを覚えるのに、練習問題のコードを、チラシの裏に手書きで書いて覚えようとしているのですが、キ

プログラムを覚えるのに、練習問題のコードを、チラシの裏に手書きで書いて覚えようとしているのですが、キーボードで打って覚えた方が良いでしょうか?

Aベストアンサー

個人的すぎる感想ですが、紙に書いても良いと思います。

 同じ紙に書くならばフローチャートも併せてどうぞ。

Qメッセージの頭に「#」の意味教えてください

メッセージの頭に「#」の意味教えてください

Aベストアンサー

言語にもよりますがコメント文に利用されることが多いですね
ただC系ではありません


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報